<!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>计算每个字符出现的次数和最多出现的是哪个字符</title>
</head>
<body>
</body>
扫描二维码关注公众号,回复: 16283425 查看本文章<script type="text/javascript">
//计算每个字符出现的次数和最多出现的是哪个字符
let str = 'gggjjggyyyooppoooww';
function findString(str){
let StringNum = {};
//遍历字符串,得到对象{字符:出现次数}
for(let i=0;i < str.length;i++){
let e = str.charAt(i);
if(StringNum[e]){
StringNum[e]++;
}else{
StringNum[e] = 1;
}
}
console.log(StringNum);
let {maxArr,count} = {maxArr:[],count:0};
//遍历对象,找出出现次数最多的元素
for (let key in StringNum) {
//出现次数更多则需剔除先前的元素并添加当前元素
if (count < StringNum[key]) {
count = StringNum[key];
maxArr.shift();
maxArr.push(key);
}
//出现次数相同则在数组添加元素
if (count == StringNum[key] && maxArr.indexOf(key) == -1) {
maxArr.push(key);
}
}
//返回对象{高频字符数组,最大出现次数}
return {maxArr,count}
}
console.log(findString(str));
</script>
</html>