实现数组扁平化的方法

132 阅读1分钟

简简单单实现一下数组扁平化

  1. 直接使用flat调用
let arr = [1, [2, [3, [4, 5]]], 6]
let arr2 = arr.flat(Infinity)//
  1. 使用递归调用实现
let arr = [1, [2, [3, [4, 5]]], 6]
let res = []
function flat(arr) {
  let len = arr.length
  for(let i=0; i<len; i++){
    if(!Array.isArray(arr[i])){
      res.push(arr[i])
    }else{
      flat(arr[i])
    }
  }
  return res
}
flat(arr)//[1,2,3,4,5,6]
  1. 使用数组解构复制
let arr = [1, [2, [3, [4, 5]]], 6]
while(arr.some((item)=>item.isArray())){
  arr = [].concat(...arr)
}//[1, 2, 3, 4, 5, 6]

//其中Array.some(fun)是使用fun遍历数组Array有一个是ture则返回ture