话不多说先看代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
function findMost2(arr){
// 定义一个空对象存储数据
var h={};
// 假设频率高的数出现次数初始为0
var maxNum=0;
// 清空频率高的数
var maxEle=null;
// 对数组从左往右遍历
for(var i=0;i<arr.length;i++){
// 对数组的每一个数据进行存储存于a
var a=arr[i];
// 判断存储的数字是否为默认值, 存在 对属性的值进行+1,不存在 往对象中重新添加属性赋值为1;
h[a]===undefined?h[a]=1:(h[a]++);
// 判断存入的数据是否大于初始的频率高数,如果满足将存入高频数和出现次数的覆盖前一次的。
if(h[a]>maxNum){
maxEle=a;
maxNum=h[a];
}
}
return '最大数'+maxEle+'出现次数'+maxNum;
}
var arr=[1,1,22,22,3,3,5,3,4,6,4,5,4,4,8,8,1,1,6,5,5,3];
console.log( findMost2(arr));
</script>
</body>
</html>