- 思路:投票的思路 候选人第一次出现写名字还要写一个1,第二次出现找到这个人直接加1 先创建一个对象,然后开始遍历数组,如果发现这个元素项是第一次出现,就把这个元素项 作为对象的属性,值就是1,如果发现这个元素项之前出现过了,就++一下,等统计结束,开始创建一个max变量用来记录最多的元素,maxCount计算最多的元素的次数,开始for..in对象,只要发现某一项比Max还要大,直接把它赋值给max,最终max里面就是次数最多的元素
// 统计出出现次数最多的元素 返回次数和元素
const arr = [1, 2, 3, 2, 3, 2, 3, 7, 8, 7, 6, 7, 5, 7, 0, 7, 7, 7, 7, 2, 5, 5, 5, 5, 5, 5]
function repeatCount(arr) {
// key 是元素 value: 次数
const obj = {}
let max = 0
let maxItem = null
for (let i = 0
const item = arr[i]
if (obj[item]) {
obj[item]++
} else {
obj[item] = 1
}
if (obj[item] > max) {
max = obj[item]
maxItem = item
}
}
console.log(maxItem, max)
}
repeatCount(arr)