1、递归
let arr=[1,2,[3,[4,5]],6]
function flat(arr){
let result = [];
for(const item of arr){
item instanceof Array? result = result.concat(flat(item)):result.push(item)
}
return result
}
flat(arr)
2、reduce
let arr=[1,2,[3,[4,5]],6]
function flat(arr){
return arr.reduce((acc,cur)=>{
return acc.concat(cur instanceof Array?flat(cur):cur)
},[])
}
flat(arr)
3、es6扩展运算符
let arr=[1,2,[3,[4,5]],6]
while(arr.some(Array.isArray)){
arr= [].concat(...arr)
}
console.log(arr)
4、es6 flat
let arr=[1,2,[3,[4,5]],6];
arr.flat(Infinity)