arr.reduce()方法详解及高级技巧
简介
1.reduce()接受一个函数作为累加器,从数组第一个值开始缩减,直到最后一个值缩减完成。最终计算为一个值;
2.reduce()可做为高阶函数,用于函数的compose;
3.reduce()无法调用空数组,会报错。
语法
array.reduce(callback,[initialValue])
reduce为数组中每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素,接受四个参数:
callback(执行数组中每个值的函数,包括4个参数)
1.previousValue(上一次调用回调返回的值,或者是提供的初始值(initialValue));
2.currentValue(数组中当前被处理的元素);
3.index(当前元素在数组中的索引);
4.array(调用reduce的数组);
initialValue(作为第一次调用callback的第一个参数)
注意事项:如果没有提供initialValue,reduce会从索引1的地方开始执行callback方法,跳过第一个索引。如果提供initialValue,从索引0开始。
如果这个数组为空,运用reduce会报错,所以一般来说提供初始值更安全。
用法
- 数组求和、求积
var arr = [1,2,3,4];
var sum = arr.reduce((x,y)=