JS Array.reduce 对象属性累加

8,668 阅读1分钟

Array reduce 数组对象使用

无非就是 计算数组元素 相加后的总和 ,看网上给的Demo 全是  
[1,2,3,4,6].reduce 这种基本用法,
在实际开发中 数组中一般都是放对象   
本次我将使用 reduce 实现 **数组对象中 具体属性 Price 累加**
` [{ name: 'apple',  price: 10 }, {  name: 'banana',   price: 9  } ]; `

reduce 基本语法

普通 for 实现 和 reduce 实现对比

    let array = [
        {
            name: 'apple',
            price: 10
        }, {
            name: 'banana',
            price: 9
        }
    ];

    let sumprice = 0;
    for (let index = 0; index < array.length; index++) {
        const element = array[index];
        sumprice += element.price;
    }
    console.log('for example sumprice',sumprice);

    /* 
        reduce 语法实现
        total    必需。初始值, 或者计算结束后的返回值。
        currentValue    必需。当前元素
        currentIndex    可选。当前元素的索引
        arr    可选。当前元素所属的数组对象。
    */
    sumprice = array.reduce(function (total, currentValue, currentIndex, arr) {
        return total + currentValue.price;
    }, 0);
    console.log('for reduce sumprice',sumprice);