Steamroller-freecodecamp算法题目

Steamroller


1.要求

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

2.思路

  • 设定结果数组res
  • 用for循环遍历arr的元素,判断是否为数组,是,则用res=res.concat(steamroller(arr[i]))继续输入到函数;否,则把元素push到res中
  • 最后返回res

3.代码

function steamroller(arr) {
  // I'm a steamroller, baby
  var res=[];
  for(var i=0;i<arr.length;i++){
    if(Array.isArray(arr[i])){
      res=res.concat(steamroller(arr[i]));
    }
    else{
      res.push(arr[i]);
    }
  }
  return res;
}

steamroller([1, [2], [3, [[4]]]]);

4.相关链接

原文地址:https://www.cnblogs.com/ahswch/p/9303921.html