数组扁平化

数组扁平化主要的表现就是把多层嵌套的数组拉平,变成一维数组

下面介绍数组扁平化的四种方式

1.第一种方式就是最简单的flat方法,flat中的参数就是代表深度

 let arr=[1,2,[3,[4,[5,6]]]]
  //  方式一:flat中的参数代表深度
  console.log(arr.flat(3));
  // //如果我们不知道数组有多少层
  console.log(arr.flat(Infinity));

2.第二种方式是使用reduce,reduce其实也是做累加器的他主要有两个参数,第一个参数是一个函数,函数还有四个参数(最终值,每一项,当前元素索引(选填),当前元素所在数组(选填))第二个参数是初始值(可选填)。

//方法二:reduce
  function f(arr){
    return arr.reduce((res,item)=>{
        return res.concat(Array.isArray(item)?f(item):item)
       //判断如果当前项是一个数组,就执行递归,把它分解成不是数组为止,最后拼接到一起
    },[])
  }
  console.log(  f(arr));

3.把数组转化成字符串,再将字符串转换成数组

这种方法中运用了数组中的一些基本方法,所以小伙伴们对数组和字符串的方法要用的熟练

 //方式三 数组转成字符串,再把字符串转化成数组
  function f(arr){
    console.log(arr.join().split(',').map((item)=>{
      return parseInt(item)
    }));
  }
  f(arr)

4.第四种方法使用了rest运算符,也就是我们经常使用的...

function flat(arr) {
      while (arr.some(item => Array.isArray(item))) {
        arr = [].concat(...arr);
        
      }
      return arr;
    }
    console.log(flat(arr));

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值