Array.prototype.reduce() - JavaScript | MDN
统计数组中相同的选项
let arr = ['a','c','a','b','e','a','c']
let res = arr.reduce((res, v) => { // 把数组中的项通过键存入对象
res[v] = (res[v] || 0) + 1 // 第一次时1,后面键名相同加一
return res
}, {}) // 累计器初始为空对象
// 还可以排个序
Objec.entriess(res).sort((a, b) => b[1] - a[1])
按长度把数组分块
[1,2,3,4].reduce((acc,curr,i,a)=>{
let index = Math.floor(i/2) // n = 2
if(!acc[index]){
acc[index]=[]
}
acc[index].push(curr)
return acc
},[])
// [[1,2], [3,4]]
reduce(callback(a,b,c,d),initValue)有两个参数
1.callback函数
callback有四个参数
(1)累计器,默认为数组第一项
(2)当前值
(3)当前值索引
(4)原数组
2.initValue:累计器的初始值
结果:
Object.entries()
方法返回一个给定对象自身可枚举属性的键值对数组: