JS中的reduce方法

累加:

    let arr = [2, 5, 6];
    let zhi = arr.reduce((x, y) => {
        return x + y;
    });
    alert(zhi);

 打印结果:13


 

累乘:

 let arr = [2, 5, 6];
    let zhi = arr.reduce((x, y) => {
        return x * y;
    });
    alert(zhi);

打印结果:60 


 

 票数统计:

 let names = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice'];

    let nameNum = names.reduce((pre,cur)=>{
        console.log(JSON.stringify(pre) +" :  " + cur);
        if(cur in pre){
            pre[cur]++
        }else{
            pre[cur] = 1
        }
        return pre
    },{})
    console.log(nameNum); //{Alice: 2, Bob: 1, Tiff: 1, Bruce: 1}

pre初始为一个空对象,cur为names数组中每次遍历的元素 


打印结果:

 


 


去重

 let arr = [1,2,3,4,4,1];
    let newArr = arr.reduce((pre, cur) => {
        if (!pre.includes(cur)) {
            return pre.concat(cur)
        } else {
            return pre
        }
    }, []);
    alert(JSON.stringify(newArr));

pre初始值为一个数字[] 

打印结果:



 数据统计:

  let arr = [
        {name:"xuhaitao",age:36},
        {name:"hunk xu",age:36},
        {name:"guozhu",age:54}
    ];
    let num = arr.reduce((pre, cur) => {
        if (cur.age==36) {
            return ++pre
        } else {
            return pre
        }
    }, 0);
    alert(num);

打印结果:2

pre的初始值为0,cur为每次从数组中遍历取出的元素

 



 

FR:徐海涛(hunk Xu)
QQ技术交流群:386476712

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值