减少ES6的使用
Array.reduce参数
这个方法接收一个函数作为累加器,数组中的每个值(从左到右)开始递减,最后作为一个值计算。
参数
回调Fn
具有四个参数的“减少”功能:
previousValue:上一次调用 callbackFn 时的返回值。在第一次调用时,若指定了初始值 initialValue,其值则为 initialValue,否则为数组索引为 0 的元素 array[0]。currentValue:数组中正在处理的元素。在第一次调用时,若指定了初始值 initialValue,其值则为数组索引为 0 的元素 array[0],否则为 array[1]。currentIndex:数组中正在处理的元素的索引。若指定了初始值 initialValue,则起始索引号为 0,否则从索引 1 起始。array:用于遍历的数组。
InitialValue可选
作为第一次调用回调函数时参数previousValue的值。如果指定了initialValue initialvalue,则currentValue将使用数组的第一个元素;否则previousValue将使用数组的第一个元素,currentValue将使用数组的第二个元素。
返回值
使用“reduce”回调函数遍历整个数组的结果。
使用场景
1.求和数组(基本用法)
let list = [5,6,7,8,9];let total = list.reduce((val,oldval,current index)= & gt;{ console . log(val+& # 34;&&"+old val+& # 34;&&"+current index);返回val+old val;});console.log(总计);
控制台执行结果控制台执行结果
最后总数=35不容易!!
在下面的例子中,让我们从一个默认值开始,看看发生了什么变化。让我们继续更改代码,如下所示:
let list = [5,6,7,8,9];let total = list.reduce((val,oldval,current index)= & gt;{ console . log(val+& # 34;&&"+old val+& # 34;&&"+current index);返回val+old val;},10);console.log(总计);