js多维数组扁平化

把数组扁平化[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 的参数,depth 是可以传递数组的展开深度(默认不填、数值是 1),即展开一层数组。参数也可以传 Infinity,代表不论多少层都要展开

function a (arr) {
    return arr.flat(Infinity)
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容