...arr ES6的函数增强(打散)引例:多维数组降维

先来引入一个例子:通过函数add()来进行计算输入参数的总和

 

 function add(){

    var sum = 0;

    for(var i=0;i<arguments.length;i++){

      sum+=arguments[i];

    }

    return sum;

  }

  console.log(add(1,2,3));

  console.log(add(1,2,3,4,5));

 

  比较传统的函数的求和,如果没有设置参数的数量,每个函数都会自带一个arguments[]数组,用来储存函数的参数,并且访问的方式是通过下标(从0开始)来进行访问!

  但是对于箭头函数()=>{}则会报错;如下

  

 这是因为箭头函数,并没有内置的arguments[]数组,那么这样的解决办法就是使用...arr

注意:三个点后面只能是arr 如果是其他的字符则会是undefined!!!!!

  还有一个功能就是将数组进行打散(首先来复习一下数组的concat函数)

  var arr = [].concat(1,[2,3],4,[5,6]);

 console.log(arr);

结果是1,2,3,4,5,6。(concat函数进行拼接的时候,会把数组进行打散后进行拼接,但是只是打散一次);

 ...数组名(本例为 ...sun):

  var sun=[1,[2,3],4,[5,6]];

 console.log(...sun);// 1,[2,3],4,[5,6]

为了更好的理解我输出sun进行对比:

console.log(sun);如下图

 如何进行多维数组的降维?(打散,concat()函数,递归)

例: 

 var sun=[1,[2,3],4,[5,6,[7,8,9]]];

  function arr(num){

    num=[].concat(...num);

    var bool=num.some(function(elem){

       return Array.isArray(elem);

    })

    if(bool){

      return arr(num);

    }else{

      return num;

    }

  }

  console.log(arr(sun));

输出结果如下图:

                                                                  以上是本人的学习分享,仅供参考,希望能起到抛砖引玉的作用,如果发现错误以及需要补充的地方,还请各位不吝赐教!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值