Steamroller

来源:互联网 发布:考试宝典软件 编辑:程序博客网 时间:2024/06/05 03:15

题目

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

要求

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]

代码

function steamroller(arr) {  // I'm a steamroller, baby  var newArr = [];  var temp;  function ifArray(arr) {    for(var i = 0; i < arr.length; i++) {      //若为数组则继续迭代      if(Array.isArray(arr[i])) {        temp = arr[i];        ifArray(temp);      }      else {        newArr.push(arr[i]);      }    }  }  ifArray(arr);  return newArr;}steamroller([1, [2], [3, [[4]]]]);
原创粉丝点击