reduce详细
输入:一个数组中某个元素的值 输出:需要计算该元素在数组中重复出现的个数
function getItemNumber(arr) {
let tempArr = [];
let obj = {};
let resultArr = [];
arr.forEach(item => {
if (!tempArr.includes(item)) {
tempArr.push(item);
}
});
arr.forEach(item => {
if (obj[item]) {
obj[item]++;
} else {
obj[item] = 1;
}
});
tempArr.forEach(item => {
resultArr.push({
name: item,
num: obj[item]
});
});
return resultArr;
},
使用reduce
arr.reduce((pre,cur)=>{
pre[cur] = (pre[cur] || 0) + 1
return pre },{})
//等于
arr.reduce((pre,cur)=>(
pre[cur] = (pre[cur] || 0) + 1 ,pre ),{})