js中数组的扁平化处理的五大方法--多维数组展开成一维数组

前言

看了挺多资料,觉得很多都是不全,或者是不够方便,来花点时间总结下数组的扁平化处理方法,主要是为铁子门方便和不用处理拿去就能用。

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

//这里申明一个数组下面所有的方法都是这个数组

1.数组自带方法–flat

console.log(arr.flat(Infinity));//[1,2,3,4]
//PS:Infinity为不管多少层都展开成一维---也可自己输入层数--如下
console.log(arr.flat(2));//这就是展开两层

2.正则处理(该方法数字会被变成字符串)

    let res = JSON.stringify(arr).replace(/\[|\]/g,'');
    console.log(res.split(','))

3.正则优化,解决方法2问题

    let res = JSON.stringify(arr).replace(/\[|\]/g,'');
    console.log(JSON.parse('['+res+']'));

4.es5递归处理

    let newArr=[];
    function openArr(arr) {
       for(let arrOne of arr){
           if(Array.isArray(arrOne)){openArr(arrOne)}else{newArr.push(arrOne)}
       }
       return newArr;
    }
    console.log(openArr(arr))

5.es6数组的reduce处理(递归思想)

   const reduceArr = (arr)=>{
        return arr.reduce((pre,cur)=>{
            return pre.concat(Array.isArray(cur) ? reduceArr(cur) : cur)
        },[])
    }
    console.log(reduceArr(arr))

可能有小伙伴对于数组的reduce不是很理解,这里直接截个图来理解一下reduce的各个参数意思

reduce在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吴大大逛博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值