判断一个字符串中出现次数最多的字符,并统计其次数。
解题思想:
1,利用charAt() 遍历字符串
2,把每个字符都存储给对象,如果对象没有这个属性,就赋值为1,如果存在了就+1
3,遍历对象,得到最大值和该字符。
var str='abcoefoxyozzopppp';
var o={};
for(var i=0;i<str.length;i++){
var chars=str.charAt(i);
if(o[chars]){
o[chars]++;
}else{
o[chars]=1;
}
}
//遍历对象
var max=0; //出现最大的次数
var ch=''; //出现次数最多的字符
for(var k in o){
//k属性名 o[k]属性值
if(o[k]>max){
max=o[k];
ch=k;
}
}
console.log('出现次数最多的是'+ch+'出现的次数是'+max);
但是这样做有一 个问题,就是出现次数最多的字符有两个甚至多个怎么办?这个程序只会找到一个。
在最后面加上这个就完美了
var str='';//出现次数最多的字符
for(var key in o){
if(o[key]==max){
str+=key+',';
}
}
console.log(str+ '出现最多,是'+max+'次');