reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。对空数组是不会执行回调函数的。
reduce(callback,initiaValue)会传入两个变量,回调函数(callback)和初始值(initiaValue)。
reduce方法会遍历数组,使用回调函数遍历处理数组中的每一项,回调函数每次会返回一个处理后的值,作为下一次回调的第一个参数。
callback (累加器中包含四个参数)
1、previousValue (上一次调用回调返回的值,或者是提供的初始值(initialValue))
2、currentValue (数组中当前被处理的元素)
3、index (当前元素在数组中的索引)
4、array (调用 reduce 的数组)
initialValue (作为第一次调用 callback 的第一个参数。)
注意: 空数组使用reduce方法时,必须传入initialValue值,否则会报错
数组求和
let arr = [1, 2, 3, 4,5];
let sum = arr.reduce((pre,cur)=>pre+cur)
对象属性求和
let cartInfoList = [
{ skuNum: 12, skuPrice: 4 },
{ skuNum: 2, skuPrice: 5 },
];
let sum = cartInfoList.reduce((pre, cur) => {
return pre + cur.skuNum * cur.skuPrice;
}, 0);