reduce是一种数组运算,通常用于将数组的所有成员"累积"为一个值。
例1:
let arr
= [1, 2, 3, 4, 5, 6]
let sum = (a
, b
) => a
+ b
arr
.reduce(sum
, 0);
上面代码中,reduce对数组arr的每个成员执行sum函数。sum的参数a是累积变量,参数b是当前的数组成员。每次执行时,b会加到a,最后输出a。
累积变量必须有一个初始值,上例是reduce函数的第二个参数0。如果省略该参数,那么初始值默认是数组的第一个成员。
例2:
let arr
= [1, 2, 3, 4, 5, 6]
let text = (newArr
, item
) => {
newArr
.push(item
+ 1)
return newArr
}
arr
.reduce(text
, [])
上面代码中,累积变量的初始值是一个空数组,结果reduce就返回了一个新数组,等同于执行map方法,对原数组进行一次"变形"。