定义
JavaScript 版本: ECMAScript 3
reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
reduce() 可以作为一个高阶函数,用于函数的 compose。
注意: reduce() 对于空数组是不会执行回调函数的。
语法
array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
参数
参数 | 描述 |
---|---|
function(total, currentValue, index, arr) | 必需。用于执行每个数组元素的函数。函数参数: |
initialValue | 可选。传递给函数的初始值。 |
实例
示例:
代码:
1 | var arr = [1, 2, 3, 4, 5, 6]; |
打印结果:
次数 | 未設置初始值 | 設置初始值 |
---|---|---|
1 | 查看: 1 2 1 (6) [1, 2, 3, 4, 5, 6] | 查看: 0 1 0 (6) [1, 2, 3, 4, 5, 6] |
2 | 查看: undefined 3 2 (6) [1, 2, 3, 4, 5, 6] | 查看: undefined 2 0 (6) [1, 2, 3, 4, 5, 6] |
3 | 查看: undefined 4 3 (6) [1, 2, 3, 4, 5, 6] | 查看: undefined 3 0 (6) [1, 2, 3, 4, 5, 6] |
4 | 查看: undefined 5 4 (6) [1, 2, 3, 4, 5, 6] | 查看: undefined 4 1 (6) [1, 2, 3, 4, 5, 6] |
5 | 查看: undefined 6 5 (6) [1, 2, 3, 4, 5, 6] | 查看: undefined 5 1 (6) [1, 2, 3, 4, 5, 6] |
6 | 查看: undefined 6 1 (6) [1, 2, 3, 4, 5, 6] | |
结果: (6) [1, 2, 3, 4, 5, 6] undefined | 结果: (6) [1, 2, 3, 4, 5, 6] undefined |
结论:
(1)从案例1中可看出,reduce() 没有设置 initialValue 时,total 为数组的第一个值(即是数组的第0个索引所对应的元素),currentValue 为数组的第1个索引所对应的元素,currentIndex 为数组的第1个索引;(2)如果提供 initialValue 则从第0个索引开始。(3)原数组不会改变。
如果这个数组为空,运用 reduce() 是什么情况?
1 | var arr = []; |
用法:
(1)计算。
1 | // JavaScript |
(2)计算数组中每个元素出现的次数。
1 | const arr = ['ABC', 'QWER', 'TYU88', '', '123456', 'QWER', 'QWER12']; |
(3)计算数组中每个元素出现的次数。
1 |
(4)计算数组中每个元素出现的次数。
1 |
(5)计算数组中每个元素出现的次数。
1 |
(2)计算数组中每个元素出现的次数。
1 |
欣赏此文,打赏一下