码迷,mamicode.com
首页 > 编程语言 > 详细

将多重嵌套数组恢复为一个数组

时间:2016-12-10 19:57:01      阅读:243      评论:0      收藏:0      [点我收藏+]

标签:问题:   color   代码   length   个数   ret   return   isa   war   

问题:给定一个任意多重嵌套数组,把它恢复为一个完整的数组,没有嵌套。

样例:

Input

steamrollArray([[["a"]], [["b"]]])

steamrollArray([1, [2], [3, [[4]]]])

Output

["a", "b"]

[1, 2, 3, 4]

 

实现:利用dfs搜索,一步步找是否是数组(Array.isArray(arr)判断是否是数组)

代码如下:

 1 function steamrollArray(arr) {
 2   var newArr = [];
 3   function dfsArray(arr) {
 4     for(var i = 0; i < arr.length; i++) {
 5       if(!Array.isArray(arr[i])) {
 6         newArr.push(arr[i]);
 7       } else {
 8         dfsArray(arr[i]);
 9       }
10     }
11   }
12   dfsArray(arr);
13   return newArr;
14 }

 

将多重嵌套数组恢复为一个数组

标签:问题:   color   代码   length   个数   ret   return   isa   war   

原文地址:http://www.cnblogs.com/RRirring/p/6156209.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!