reduce方法
arr.reduce(函数值,初始值)
应用场景:下次操作的初始值,依赖于上次操作的返回值。(如数值的累加计算等)
reduce() 方法接收一个回调函数作为参数,reduce 为数组中的每一个元素依次执行回调函数,回调函数接受四个参数:初始值(或者上一次回调函数的返回值),当前元素值,当前索引,调用 reduce 的数组。
reduce方法的返回值为回调函数最后的返回值
代码示例1:(回调函数中不写return,并且没有initialValue)
代码示例2:(回调函数中写return,但没有initialValue)
代码示例3:(回调函数中:写return,并且有initialValue)
结论:如果没有提供initialValue,那么reduce的第一轮回调函数中的“total”就是arr[0],“current_Value”就是arr[1],index就是1;
如果提供initialValue,那么reduce的第一轮回调函数中的“total”就是initialValue,“current_Value”就是arr[0],index就是0。
所以在使用reduce函数时,回调函数中return最好不要省,而且initialValue也最好不要省!!!
reduce方法使用场景:
(1)数组求和,求积
(2)数组扁平化
(3)计算数组中每个元素出现的次数
(4)数组去重
(5)链式获取对象的属性值