作用
计算数组元素相加后的总和
语法
/**
* @params { Function } (必填), 用于执行每个数组元素的函数
* @params { * } total (必填), 函数的第一个参数, 初始值, 或者计算结束后的返回值
* @params { * } currentValue (必填), 函数的第一个参数, 当前元素
* @params { Number } currentIndex (非必填), 函数的第一个参数, 当前元素的索引
* @params { Array } arr (非必填), 函数的第一个参数, 当前元素所属的数组对象
* @params { Number } initialValue (非必填), 初始值
* @returns 数组元素相加后的总和
*/
array.reduce(function (total, currentValue, currentIndex, arr), initialValue)
实例
一维数组
let arr = [1, 2, 3, 4, 5];
let sum = arr.reduce((total, num) => total + num);
console.log(sum); // 15
二维数组
let arr = [
{
x: 1, y: 10},
{
x: 2, y: 20},
{
x: 3, y: 30},
{
x: 4, y: 40},
{
x: 5, y: 50},
]
此时有两种写法
- 不传第二个参数
// 简写形式
let {
x: sum } = arr.reduce((total, item) => ({
x: total.x + item.x}))
// 不简写
let {
x: sum } = arr.reduce((total, item) => {
return {
x: total.x + item.x
}
})
console.log(sum); // 两种情况都是15
- 传第二个参数
let sum = arr.reduce((total, item) => total + item.y, 0);
console.log(sum); // 150