数组的操作方法-reduce

reduce(function(total,value,index,array) { })方法接收一个函数作为累加器。数组中的每个值从左到右开始缩减,最终计算为一个值

        total:必须有,有两个作用,一是在最开始作为一个初始值参与运算;二是接收每次循环结束的返回值,即每次循环结束的返回值都累加到total身上。

        value:必须有,表示当前元素

        index:可选,当前元素的下标(索引)

        array:可选,当前元素所属的数组对象

        initialValue:可选,翻译为初始值。当initialValue有值时,total的初始值=initialValue,value默认为当前数组的第一个元素; 当initialValue没有值时,total的初始值默认为数组的第一个元素,此时value默认为数组的第二个元素。

例1、用reduce求和

   var arr = [3, 4, 22, 33, 654, 75, 2];
        var rel = arr.reduce(function(total, value) {
            console.log(total + '---' + value)
            //接受一个函数作为累加器
            return total + value;
        })
   console.log(rel);

        如上述代码所示:在第一次循环中,由于没有initialValue,故total的初始值为数组的第一个元素 3 ;value值为数组的第二个元素 4 ;故第一次循环的返回值total=3+4=7

        第二次循环中,total值变为7,value值从左到右依次查为22,故第二次循环的返回值total=7+22=29;

        ……

        以此类推,直至value值为数组的最后一个元素2时,整个计算过程结束

例2、用reduce求最大值

 var arr2 = [2, 223, 423, 54, 785, 65, 864, 22, 2];
        var rel2 = arr2.reduce(function(total, value) {
            return Math.max(total, value);
        });
        console.log(rel2);

例3、用reduce数组去重

   arr3 = [2, 3, 2, 56, 22, 565, 56, 22];
        var rel3 = arr3.reduce(function(total, value) {
            if (!total.includes(value)) {
                total.push(value);
            }
            return total
        }, []);
        console.log(rel3);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值