概念
reduce()方法,是Array的reduce把一个函数作用在数组[x1,x2,x3...]上,这个函数必须带两个参数,reduce把结果继续和数组的下一个元素做累计运算。
arr.reduce(callback[, initialValue])
- callback(一个在数组中每一项上调用的函数,接受四个函数:)
- previousValue(上一次调用回调函数时的返回值,或者初始值)
- currentValue(当前正在处理的数组元素)
- currentIndex(当前正在处理的数组元素下标)
- array(调用reduce()方法的数组)
- initialValue(可选的初始值。作为第一次调用回调函数时传给previousValue的值
使用场景
1累加
function add(x, y) { return x + y } arr.reduce(add)
2 字符计数处理
var str = "abcdaadc"; var result = str.split(‘‘).reduce(function(p, k){ p[k]?p[k]++:p[k] = 1; return p; },{}); console.log(result)
>{a: 3, b: 1, c: 2, d: 2}
注:这只是reduce基本用法,其他用法需要自己探索,参考如下