Arr.reduce(callback, initVal);
- callback;
- initVal
非必传;
其中 callback 内有四个参数,分别作用如下;
- 要进行累计运算;
- 当前或者下一个值;
当initVal传入的话,callback第一个参数默认值为initVal,第二个参数默认为数组下标为0的值,如果没传入,则callback中第一个参数默认为数组下标为0的值,第二个参数默认为数组下标为1的值 - 当前数组下标,与第三个参数相对应;
- 当前数组;
实例
/*
sum: 累计计算
val: 当前或者下一个值
idx: 当前下标
soures: 原数组
*/
var z = [1,2,3,4,5,6,7].reduce((sum, val, idx, soures) => sum+val, 4);
console.log(z); // 32
var z = [1,2,3,4,5,6,7].reduce((sum, val, idx, soures) => sum+val, 0);
console.log(z); // 28
var z = [1,2,3,4,5,6,7].reduce((sum, val, idx, soures) => sum+val);
console.log(z); // 28
var z = [1,2,3,4,5,6,7].reduce((sum, val, idx, soures) => sum*val);
console.log(z); // 5040