扁平数组

74 阅读1分钟

扁平数组

  1. 扁平数组可能是我们工作中常用的,Array提供了一个flag方法可以实现。但是我们自己如何实现呢?

  2. 实现方式一,使用递归+concat【concat可以扁平一层数组】

function myFlat(array=[]){
    let isDeep = array.some(item => item instanceof Array)
    if (!isDeep) return array
    let res = Array.prototype.concat.apply([],array)
    return myFlat(res)
}
  1. 实现方式二,递归
function myFlat2(arr=[],res = []){
    for (let item of arr){
        if (item instanceof Array){
             myFlat2(item,res)
        }else {
            res.push(item)
        }
    }
    return res
}