javascript实现数组扁平化,多维数组转一维数组

46 阅读1分钟

javascript实现数组扁平化,多维数组转一维数组

1、给数组原型添加方法

let arrOne = [1,2,3,4,[4,5],[1,[3]],4];

Array.prototype.fun = function(){
    let newArr = [];
    for(let item of this){
        if(Array.isArray(item)){
                // 判断当前item是不是一个数组  如果是数组进行拼接操作
                newArr = newArr.concat(item.fun()) //如果当前数组的是个多维数组 重复操作
        }else{
                // 如果当前值不是数组 直接追加
                newArr.push(item)
        }
    }
    return newArr
}
// 调用
let newArrOne = arrOne.fun();
console.log(newArrOne) //[1,2,3,4,4,5,1,3,4]

2、封装独立方法

let arrOne = [1,2,3,4,[4,5],[1,[3]],4];

function newFun(val){
    let newArr = [];
    for(let item of val){
        if(Array.isArray(item)){
            // 判断当前item是不是一个数组  如果是数组进行拼接操作
            newArr = newArr.concat(newFun(item)) //如果当前数组的是个多维数组 重复操作
        }else{
            // 如果当前值不是数组 直接追加
            newArr.push(item)
        }
    }
    return newArr;
};

// 调用
let newArrTwo = newFun(arrTwo)
console.log(newArrTwo) //[1,2,3,4,4,5,1,3,4]