reduce函数,就是一个累加器,参数如下
我们一般只需要看第一,第二个参数就行了,例:
// 例一、纯数字数组
let arr = [2,2,3,6,7]
console.log(arr.reduce((a, b) => a + b))
// 第一步,将 arr[0]作为第一步的累加值,a = 2,b = arr[1] = 2,累加值a为2
// 第二步, a = 2 + 2 = 4, b = arr[2] = 3,累加值a为4
// 第三步,a = 4 + 3 = 7, b = arr[3] = 6, 累加值a为7
// 第四步,a = 7 + 6 = 13, b = arr[4] = 7, 累加值a为13
// 第五步,a = 13 + 7 = 20, b = arr[5] = undifend, 累加停止, 返回a值即20
// 例二、对象中字符串数字累加
let arr = [
{num : '5'},
{num : '1'},
{num : '3'},
{num : '4'}
]
console.log(arr.reduce((a,b)=>{
return {
num: Number(a.num) + Number(b.num)
}
}).num)
// 这里之所以返回 { num : int}的类型,是因为需要保持返回对象和计算对象的计算
// 元素一致,才好开始计算,最后也通过.num将最后的累加对象里面的num元素值返回。