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数组中每次遍历的元素 


打印结果:

JS中的reduce方法_第1张图片

 


 


去重

 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初始值为一个数字[] 

打印结果:

JS中的reduce方法_第2张图片



 数据统计:

  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

你可能感兴趣的:(VUE)