Array.reduce方法

作用

计算数组元素相加后的总和

语法

/**
 * @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},
]

此时有两种写法

  1. 不传第二个参数
// 简写形式
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
  1. 传第二个参数
let sum = arr.reduce((total, item) => total + item.y, 0);

console.log(sum); // 150

你可能感兴趣的:(Javascript,javascript)