归并方法
reduce()
和 reduceRight()
: 都会迭代数组的所有项,然后构建一个新的返回值,接收 4 个参数:前一个值、当前值、项的索引、数组对象
reduce()
从数组第一项开始,遍历到最后,第一次迭代发生在数组的第二项上
reduceRight()
从数组的最后项开始,向前遍历到数组第一项,第一次迭代发生在数组的倒数第二项上
var values = [1,2,3,4,5]
// reduce()
var sum = values.reduce(function (prev, cur, index, array) {
return prev + cur
})
console.log(sum) //15
// reduceRight()
var sum1 = values.reduceRight(function (prev, cur, index, array) {
return prev + cur
})
console.log(sum1) //15
注意:要累加对象数组中包含的值,必须提供 initialValue,以便各个 item 正确通过你的函数,例如:
// 例一:
let initialValue = 0
let sum = [{x: 1}, {x: 2}, {x: 3}].reduce(function (previousValue, currentValue) {
return previousValue + currentValue.x
}, initialValue)
console.log(sum) // logs 6