js多維數(shù)組扁平化

把數(shù)組扁平化[1,2,[3,[4,[9,[1]],5]]],結果[1, 2, 3, 4, 9, 1, 5]
方法一

function flatten (arr) {
    let result = []
    arr.forEach(i => {
        if (Array.isArray(i)) {
            result = result.concat(flatten(i))
        } else {
            result.push(i)  
        }
    });
    return result
}

方法二

function flatten (arr) {
    return arr.reduce((pre,next)=> {
        return pre.concat(Array.isArray(next)?flatten(next):next)
    },[])
}

方法三

function flatten (arr) {
    return arr.toString().split(',').map(Number)
}

方法四
flat(depth)
ES6的flat方法,depth 是 flat 的參數(shù),depth 是可以傳遞數(shù)組的展開深度(默認不填、數(shù)值是 1),即展開一層數(shù)組。參數(shù)也可以傳 Infinity,代表不論多少層都要展開

function a (arr) {
    return arr.flat(Infinity)
}
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容