JS扁平化数组

第一种方案:array.flat(Infinity)

function _flatten(arr) {
    
    
    // 第一种方式
    return arr.flat(Infinity)
}
console.log(_flatten([1, [2, 3], 4]))

第二种方案:递归

let res = []
function _flatten(arr) {
    
    
    for(let i=0; i<arr.length; i++){
    
    
        if(Array.isArray(arr[i])){
    
    
            _flatten(arr[i])
        }else{
    
    
            res.push(arr[i])
        }
    }
}
_flatten([1, [2, 3, [4, 5], 6], 7, 8])
console.log(res)

第三种:递归+reduce

function _flatten(arr){
    
    
    return arr.reduce((resArr, item) => {
    
    
        if(Array.isArray(item)){
    
    
            return resArr.concat(_flatten(item))
        }else{
    
    
            return resArr.concat(item)
        }
    }, [])
}
console.log(_flatten([1, [2, 3, [4, 5], 6], 7]))

猜你喜欢

转载自blog.csdn.net/qq_45465526/article/details/121833697