reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
语法:array.reduce(function(total, currentValue, currentIndex, arr), initialValue)
reduce() 可以作为一个高阶函数,用于函数的 compose。
注意: reduce() 对于空数组是不会执行回调函数的。
reduce() 的几个强大用法:
1.两两相加可以用来求和
var total = [ 2, 3, 4 ].reduce(( pre, next ) => {
return pre + next
}, 0);
console.log(total) // 9
2.二维数组转为一维数组
var array = [[1, 2], [3, 4], [5, 6]].reduce(( pre, next ) => {
return pre.concat(next)
}, []);
console.log(array) // [1, 2, 3, 4, 5, 6]
3.计算数组中每个元素出现的次数
- 方法一
let names = ['tom', 'jim', 'jack', 'tom', 'jack'];
const countNames =