面试题:求数组中重复次数最多的元素并求出个数
直接上代码
<script type="text/javascript">
let ARR = ['b','a','cd','dd','d','a','c','e','c','b','a','c','b','c','b']
// 先令最多元素为第一个元素
let max = ARR[0]
// 最多元素个数
let num = 0
// 辅助数组,存储最多数量重复元素
let eq = []
let arr = ARR.reduce((newArr,item)=>{
if(item in newArr){
newArr[item] += 1
}else{
newArr[item] = 1
}
return newArr
},{})
for(let item in arr){
if(num < arr[item]){
num = arr[item]
max = item
eq.length = 0
}else if(num === arr[item]){
eq.push(item)
}
}
if(eq.length>0){
eq.forEach(item=>{
max += ','+item
})
}
// // forEach方法 需要改进,得不到最多数量相同的两个元素
// let newArr = {}
// let max = ''
// let num = 1
// ARR.forEach((item)=>{
// if(item in newArr){
// newArr[item] += 1
// }else{
// newArr[item] = 1
// }
// if(newArr[item]>num){
// num = newArr[item]
// max = item
// }
// })
console.log(arr,'出现最多次数的元素是:'+max+',它出现的次数是:'+num)
</script>