语法:
arr.reduce(callback,[initialValue])
参数:
callback:
执行数组中的每个值得回调函数其包含四个参数:
accumulator:
这是一个累加参数,上一次调用的累积值,如果指定intiaValue则其初始值为0,否则其初始值为数组的第一个元素的值。
let arr = [1,3,5,8];
arr.reduce((pre,value)=> {
// console.log(pre); //第一次输出为1
pre = pre+value;
console.log(pre); //4, 9, 17
return pre
})
指定initiaValue时
let arr = [1,3,5,8];
arr.reduce((pre,value)=> {
console.log(pre) //第一次输出为0
pre = pre+value;
console.log(pre); //1,4, 9, 17
return pre
},0)
第二个参数是currentValue
即数组当前处理的值
currentIndex|可选:
数组中正在处理的当前元素的索引。 如果提供了initialValue
,则索引号为0,否则索引为1。
array|可选
调用reduce()
的数组
initialValue|可选:
这是回调函数之后的参数操作见代码二; 作为第一次调用 callback函数时
的第一个参数的值。 如果没有提供初始值,则将使用数组中的第一个元素。 在没有初始值的空数组上调用 reduce 将报错。
reduce的返回值是累积处理的结果