简简单单实现一下数组扁平化
- 直接使用flat调用
let arr = [1, [2, [3, [4, 5]]], 6]
let arr2 = arr.flat(Infinity)//
- 使用递归调用实现
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]
- 使用数组解构复制
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