来源: 常用技巧之JS判断数组中某元素出现次数 - winyh - 博客园 (cnblogs.com)
1.双重for循环判断
let arr = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice', 'Bruce', 'Alice'];
let newArr = [];
for(let i=0; i<arr.length; i++){
let temp = arr[i];
let count = 0;
for(let j=0; j<arr.length; j++){
if(arr[j]===temp){
count++;
arr[j]=-1;
}
}
if(temp!==-1){
newArr.push(temp+':'+count)
}
}
console.log(newArr)
2.reduce
let names = ['Alice', 'Bob', 'Tiff', 'Bruce', 'Alice', 'Bruce', 'Alice'];
let nameNum = names.reduce((prev,current,index)=>{
if (current in prev) {
prev[current]++;
} else {
prev[current] = 1;
}
return prev;
},{})
console.log(nameNum).
如果initialValue的值是空数组且循环的元素是数字或数字形式字符串, 结果中会有empty item的空值. ??