reduce()方法接受一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值
注意:reduce()对于空数组是不会执行回调函数的
详细讲解reduce()方法中的参数问题
arr.reduce(callback,initialValue)
reduce会为数组中的每个执行回调函数。回调函数(callback)有四个参数:如下图
prev:上一次执行完返回的值(这里的prev也包括初始值)
item:当前的元素(当前执行回调函数的元素)
index:当前元素的下标
arr:原数组(可执行的当前数组)
initalValue:可选,第一次执行回调函数的初始值(也就是第一次执行回调函数时prev的初始值,可以给它赋一个[ ],或者一个{ },或者一个数字)
reducce()求和的简单使用,没有初始值
结果如下:
为reduce()添加一个初始值看看结果:
结果如下
结论:
如果没有添加初始值,第一次回调从数组的index为1的下标开始执行
如果添加了初始值,回调函数会从数组为index为0的下标开始执行。
有时候reduce()没有设置初始值会报错,如下图
设置初始值为空数组看看结果
结果如下
建议:使用reduce()的时候,最好使用初始值,避免出错
reduce()的功能
1.数字求和(看上方)
2.数字阶乘
结果如下
3.数组去重
结果如下:
4.计算数组中每个元素出现的个数
结果如下