数组扁平化

数组扁平化

将多维数组转换成一维数组

最简单的方法 数组的flat方法

        let arr = [1,[1,2,3],4,[12,13,[14,15,16],17],20,21,22];
        console.log(arr.flat(2));
        //flat里面的参数代表数组的深度 如不想编程一维 可以在里面填1
        console.log(arr.flat(1));

reduce结合递归来实现

let arr = [1,[1,2,3],4,[12,13,[14,15,16],17],20,21,22];
        // reduce方法 判断当前循环的数是否是数组 如果是则再递归调用再循环直到里面没有数组不是则直接进行合并
        function flaten2(ARR){
            return ARR.reduce((newArr,curr)=> (Array.isArray(curr) ? [...newArr,...flaten2(curr)] : [...newArr,curr]),[]);
        };
        console.log(flaten2(arr));

some函数

        function flaten(ar){
            while(ar.some(item=>Array.isArray(item))){
                // console.log(...ar);
                ar = [].concat(...ar);  
            };
            return ar;
        };
        console.log(flaten(arr));
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值