reduce方法

定义和用法

  • reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
  • reduce() 可以作为一个高阶函数,用于函数的 compose。
  • 注意: reduce() 对于空数组是不会执行回调函数的。
  • 语法:array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// 数字值求和,例子1:
var numbers = [65, 44, 12, 4];
const getSum = (total, num) => {
return total + num;
}
const myFunction = (item) => {
document.getElementById("demo").innerHTML = numbers.reduce(getSum);
}

// 返回对象求和,例子2:
const func1 = (arr) => {
return arr.reduce((moneyObj, xsd) => {
return {
sumOfYZJE: moneyObj.sumOfYZJE + xsd.YZJE,
sumOfWLFY: moneyObj.sumOfWLFY + xsd.WLFY,
sumOfJJFY: moneyObj.sumOfJJFY + xsd.JJFY,
sumOfZKJE: moneyObj.sumOfZKJE + xsd.ZKJE,
sumOfZJE: moneyObj.sumOfZJE + xsd.ZJE,
sumOfWSZJE: moneyObj.sumOfWSZJE + xsd.WSZJE,
sumOfYSZJE: moneyObj.sumOfYSZJE + xsd.YSZJE,
sumOfWKPJE: moneyObj.sumOfWKPJE + xsd.WKPJE,
sumOfYKPJE: moneyObj.sumOfYKPJE + xsd.YKPJE,
sumOfHZJE: moneyObj.sumOfHZJE + xsd.HZJE
};
}, {sumOfYZJE: 0,sumOfWLFY: 0,sumOfJJFY: 0,sumOfZKJE: 0,sumOfZJE: 0, sumOfWSZJE: 0, sumOfYSZJE: 0, sumOfWKPJE: 0, sumOfYKPJE: 0, sumOfHZJE: 0});
};
0%