JS 利用reduce统计数组每项元素出现次数 So easy
- code
/**
* @description 统计数组每项元素出现次数
* @param {array} arr
* @param {string | void} key - 空的时候统计普通类型数组每项元素出现的次数,否则就只统计数组对象里指定key名的元素出现次数
* @return {*}
*/
let countEachItem = (arr, key) => {
return arr.reduce((prev, curr) => {
if (key) {
if (curr[key] in prev) {
prev[curr[key]]++;
} else {
prev[curr[key]] = 1;
}
} else {
if (curr in prev) {
prev[curr]++;
} else {
prev[curr] = 1;
}
}
return prev;
}, {});
};