定义和用法:
1.reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
2.reduce() 可以作为一个高阶函数,用于函数的 compose。
注意: reduce() 对于空数组是不会执行回调函数的。
参考手册:www.runoob.com/jsref/jsref…
了解 reduce() 调用方法.
用法1:
reduce()方法主要用于数组求和 , 求积等一些运算.reduce后面有三个值 , 第一个是运算返回值 , 第二个是数组中的值 , 最后一个为数组下标(一般省略).
用法2:
作为一个高阶函数时的用法.
一个reducer函数有四个参数,官方解释developer.mozilla.org/
reduce(function(previousValue, currentValue, currentIndex, array) { /* ... */ }, initialValue)
previousValue:上一次调用callbackFn时的返回值。在第一次调用时,若指定了初始值initialValue,其值则为initialValue,否则为数组索引为 0 的元素array[0]。currentValue:数组中正在处理的元素。在第一次调用时,若指定了初始值initialValue,其值则为数组索引为 0 的元素array[0],否则为array[1]。currentIndex:数组中正在处理的元素的索引。若指定了初始值initialValue,则起始索引号为 0,否则从索引 1 起始。array:用于遍历的数组。 当进行求和时 , 第一次调用第二个参数需要指定初始值为0,不然会将数组的下标为0的值当做参数传给函数previousValue,这样会导致arr[0]被加两次,使得和得出的结果不准确.
当求积的时候,首次调用第二个参数应当指定初始值为1.
值的传递过程如下
最后计算结果为10 , 计算乘积将"+"改为 "*" 就可以了