reduce() 是数组的归并方法,与forEach()、map()、filter()等迭代方法一样都会对数组每一项进行遍历,但是reduce() 可同时将前面数组项遍历产生的结果与当前遍历项进行运算,这一点是其他迭代方法无法企及的
语法:array.reduce(function(total, currentValue, currentIndex, arr), initialValue);是
- total: 必需。初始值, 或者计算结束后的返回值。
- currentValue: 必需。当前元素。
- currentIndex: 可选。当前元素的索引;
- arr: 可选。当前元素所属的数组对象。
- initialValue: 可选。传递给函数的初始值,相当于total的初始值。
代码示例
const arr = [12, 34, 23]; const sum = arr.reduce((total, num) => total + num); <!-- 设定初始值求和 --> const arr = [12, 34, 23]; const sum = arr.reduce((total, num) => total + num, 10); // 以10为初始值求和 <!-- 对象数组求和 --> var result = [ { subject: 'math', score: 88 }, { subject: 'chinese', score: 95 }, { subject: 'english', score: 80 } ]; const sum = result.reduce((accumulator, cur) => accumulator + cur.score, 0); const sum = result.reduce((accumulator, cur) => accumulator + cur.score, -10); // 总分扣除10分