reduce求和方法,有两种语法:
语法1(不带初始值):
let 结果 = arr.reduce( ( 累加的和, 数组元素) => {
return 累加的和 + 数组元素
})
示例如下:
let arr = [3,5,7,9]
let sum = arr.reduce((total,curr) => {
/*
起始状态是: total = 3 curr = 5
第一次循环后: total = 8 curr = 7
第二次循环后: total = 15 curr = 9
第三次循环后: total = 24 循环结束
*/
return total + curr
})
console.log(sum) // 24
语法2(带初始值,更常用):
let 结果 = arr.reduce( ( 累加的和, 数组元素) => {
return 累加的和 + 数组元素
}, 初始值)
示例如下:
let arr = [3,5,7,9]
let sum = arr.reduce((total,curr) => {
/*
起始状态是: total = 100 curr = 3
第一次循环后: total = 103 curr = 5
第二次循环后: total = 108 curr = 7
第三次循环后: total = 115 curr = 9
第四次循环后: total = 124 循环结束
*/
return total + curr
}, 100)
console.log(sum) // 124
语法2更适用于list在套对象的使用,示例如下:
let arr = [
{name: '语文', num: 10},
{name: '数学', num: 20},
{name: '英语', num: 30},
]
let sum = arr.reduce((total,curr) => {
return total + curr.num
}, 0)
console.log(sum) // 60