总结的一堆扁平化数组的方法

扁平化数组(多维数组=>一维数组)

一、递归 (concat)

循环数组元素,判断是否是一个数组Array.isArray,就递归调用该方法

var arr=[1,[2,3,[4]]];

function flatten(arr){

    var res = [];

    for(var i=0;i<arr.length;i++){

        if(Array.isArray(arr[i])){

            res = res.concat(flatten(arr[i]));

        }else{

            res.push(arr[i]);

        }

    }

    return res;

}

flatten(arr);


二、reduce 

使用reduce来简化代码:

function flatten(arr){

    return arr.reduce(function(prev,item){

        return prev.concat(Array.isArray(item)?flatten(item):item);

},[]);




ES6的flat()

var newArray = arr.flat(Infinity);

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

推荐阅读更多精彩内容