Steamroller

FCC题目:对嵌套的数组进行扁平化处理。你必须考虑到不同层级的嵌套。

示例:

steamroller([[["a"]], [["b"]]]) 应该返回 ["a", "b"]。
steamroller([1, [2], [3, [[4]]]]) 应该返回 [1, 2, 3, 4]。
steamroller([1, [], [3, [[4]]]]) 应该返回 [1, 3, 4]。
steamroller([1, {}, [3, [[4]]]]) 应该返回 [1, {}, 3, 4]。

步骤:

 1 function steamroller(arr) {
 2   // I'm a steamroller, baby
 3   var ayy=[];
 4   function test(ay){
 5     for(var i=0;i<ay.length;i++){
 6       if(Array.isArray(ay[i])===true) test(ay[i]);
 7       else ayy.push(ay[i]);
 8     }
 9     return ayy;
10   }
11 
12   return test(arr);
13 }
14 
15 steamroller([1, [2], [3, [[4]]]]);
 
原文地址:https://www.cnblogs.com/lilicat/p/6257425.html