判断一个字符串中出现次数最多的字符,并统计次数
借助对象来存放字符,以及对应出现的次数
<script>
function num (str){
// 首先定义一个空对象
var a = {};
// 然后在把我们传来的字符串进行分隔返回一个数组
var b = str.split("");
// (49) ["d", "a", "f", "s", "f", "s", "f", "a", "f", "f"....]
// key为元素 值为个数 然后在对数组进行遍历
for (let i = 0; i < b.length; i++) {
// 这个是利用我们的对象中key不能重复
if(a[b[i]]){
a[b[i]]++;
}else{
a[b[i]] = 1;
}
}
console.log(a);
// 我们的a会返回所有的字符串的对象里面的key是我们的字符,数量是值
// 通过比较找出最大的
var maxLetter = "";
// 定义一个 变量用来接收我们最终的出现最多的一个字符
var levelNum = 0;
// 定义一个变量用来接收我们的出现最多的次数
for (const k in a) {
//{d: 2, a: 6, f: 11, s: 7, q: 2, …}
if(a[k] > levelNum){ //第一次是2>0 ||第二次6>2 ...
levelNum = a[k]; //然后赋值levelNum=3 ||赋值levelNum=6 ...
maxLetter = k; //maxLetter=d ||maxLetter=a ...
}
// 依次比较
}
// f 11
console.log(maxLetter + ":" + levelNum);
return maxLetter;
}
var cc = "dafsfsfasfafaqertyyuuioll,mmnnbvvsfsdfqgsafsafgff";
num(cc);
</script>
你学费了嘛,都看到这里了可不可以给个赞