es6 - reduce

let arr
// 累加
arr = [1, 2, 3]
let total = 0
for (let i = 0; i < arr.length; i++) {
  total += arr[i]
}
console.log(total) // 6

// 使用 reduce 累加
arr = [1, 2, 3]
// reduce 四个参数 分别为累计值、当前元素、当前索引、原数组
const sum = arr.reduce((acc, current) => acc + current, 0)
console.log(sum)

// 使用 reduce 来实现 map 同样的功能
arr = [1, 2, 3]
const mapArray = arr.map(value => value * 2)
const reduceArray = arr.reduce((acc, current) => {
  // acc 是累计的值
  // current 是当前遍历的值
  acc.push(current * 2)
  // 相当于 acc = acc
  // 最后 return 的就是 最终的acc的值
  return acc
}, [])
console.log(mapArray, reduceArray) // [2, 4, 6]

你可能感兴趣的:(es6 - reduce)