数组扁平化

es6提供的新方法 flat(depth)

let a = [1,[2,3]];  
a.flat(); // [1,2,3]  
a.flat(1); //[1,2,3]

flat(depth) 方法中的参数 depth,代表展开嵌套数组的深度,默认是 1.如果我们可以提前知道数组的维度,对这个数组进行扁平化处理,参数depth的值就是数组的维度减一。

或者直接设置为 infinity

let a = [1,[2,3,[4,[5]]]];  
a.flat(Infinity); // [1,2,3,4,5]  a是4维数组

for 循环

function flatArr(arr){
  var res = [];
  for(let i = 0, length = arr.length; i< length; i++){
    if(Array.isArray(arr[i])){
      res = res.concat(floatArr(arr[i]))
    } else {
      res = res.concat(arr[i])
    }
  }
  return res
}

while 循环

split 配合 toString

这个只针对 数组的项全为数字,

reduce 方法

运用了数组的 reduce 方法, 需要注意的是 reduce 方法,我们传了两个参数. 第二个参数是一个空数组,也是作为遍历的开始.

最后更新于

这有帮助吗?