数组扁平化-未完待续~

87 阅读1分钟

数组扁平化

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() 方法

  1. 使用some方法判断这个数组中是否有数组,有的话,就执行循环中的代码,
function  func(arr){
    while(arr.some(item=>Array.isArray(item))){
    // 2. 将arr展开,然后合并到空数组中,然后赋值给arr,然后循环再判断arr的元素里面是不是有数组
        arr=[].concat(...arr)
    }
    return arr
}

我暂时就理解了这三种方式