javascript数组扁平化总结

做过的项目里其实对于数组降维用到的基本没有,所以这次整理的也比较晚,按我的思路总结了一些博客里的常用降维方法,以上。

javascript数组扁平化总结


references:

JavaScript数组扁平化

js 数组扁平化

含义

把包含几个嵌套数组的数组转化成一个一维数组。

数组flat方法

    const flatten0=arr=>{
    // Infinity可以拉平不管多少维的数组
        return arr.flat(Infinity);
    };

转换成字符串

join+split

// 缺点就是所有类型都转换为字符串类型,(不要忘了转回数值哦
    const flatten1=arr=>{
        return arr.join().split(',').map(item=>parseInt(item));
    };

toString()+split

    const flatten2=arr=>{
        return arr.toString().split(',').map(item=>parseInt(item));
    };

以上两种方法其实一样的,相对简单容易处理。

递归+数组的其他API

递归+reduce

    const flatten3=arr=>{
        return arr.reduce((prev,item)=>{
            return prev.concat(Array.isArray(item)?flatten3(item):[item]);
        },[])
    };

递归+forEach

    const flatten4=arr=>{
        let res=[];
        arr.forEach(item=>{
            if (Array.isArray(item)){
                res=res.concat(flatten4(item));
            }else{
                res=res.concat([item]);
            }
        });
        return res;
    };
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值