数组扁平化
1. 使用 flat() 方法
使用 [].flat() 这个函数有一个参数,是一个数字,需要展开几层,就填几,如果不知道数组的层级,想要全部展开,那么就直接将参数设置为 infinity 即可
2. reduce() + 递归
function func(arr){
return arr.reduce((prev,next)=>{
return prev.concat(Array.isArray(next)?func(next):next)
},[])
}
3. 循环 + some() 方法
- 使用some方法判断这个数组中是否有数组,有的话,就执行循环中的代码,
function func(arr){
while(arr.some(item=>Array.isArray(item))){
// 2. 将arr展开,然后合并到空数组中,然后赋值给arr,然后循环再判断arr的元素里面是不是有数组
arr=[].concat(...arr)
}
return arr
}
我暂时就理解了这三种方式