对数组元素出现次数进行统计
let arr = ['a', 'b', 'a', 'b', 'c', 'c', 'd', 'd', 'a', 1, 3, 4, 5, 6, 2, 2, 1, 2]
//去重 转化成真实数组
let brr = Array.from(new Set(arr))
//将数组元素变成数组套对象
let crr = brr.map(item => {
return { name: item, num: 0 }
})
//循环判断有一样的num++
crr.map(item => {
for (let i in arr) {
if (item.name == arr[i]) {
++item.num
}
}
})
console.log(crr)
// 0: {name: "a", num: 3}
// 1: {name: "b", num: 2}
// 2: {name: "c", num: 2}
// 3: {name: "d", num: 2}
// 4: {name: 1, num: 2}
// 5: {name: 3, num: 1}
// 6: {name: 4, num: 1}
// 7: {name: 5, num: 1}
// 8: {name: 6, num: 1}
// 9: {name: 2, num: 3}
另外思路:创建一个对象,添加key,value为num;
还有其他方法的码友一起交流哦~