js数组扁平化处理3种常用方法

数组扁平化是将二维甚至多维数组转化为一维数组的过程
例:将[[1,2,3],4,5,[6,7,[8,9]]]这个多维数组转化为一维数组

  1. ES5+递归
var arr=[[1,2,3],4,5,[6,7,[8,9]]];
function bianping(arr){
     
    var res=[];
    for(var i=0;i<arr.length;i++){
     
        var item=arr[i];
        if(Array.isArray(item)){
     
            console.log(item);
            res=res.concat(bianping(item));
        }else{
     
            res.push(item);
        }
    }
    return res;
}
console.log(bianping(arr));

js数组扁平化处理3种常用方法_第1张图片

  1. ES6加reduce加递归
let arr=[[1,2,3],4,5,[6,7,[8,9]]];
function bianping(arr){
     
    return arr.reduce((res,item) =>{
     
        return res.concat(Array.isArray(item)?bianping(item):item)
    },[])
}
console.log(bianping(arr));

js数组扁平化处理3种常用方法_第2张图片

  1. ES6简化版
let arr=[[1,2,3],4,5,[6,7,[8,9]]];
let bianping=arr=> arr.reduce((res,item)=> res.concat(Array.isArray(item)?bianping(item):item),[])
console.log(bianping(arr));

js数组扁平化处理3种常用方法_第3张图片

你可能感兴趣的:(ES6,前端,javascript,html,html5)