要求:
找出字符串中出现次数最多的字符,并统计出它出现的次数。
思路:
利用方法charAt()遍历这个字符串,获取所有字符。然后依次把每个字符都存储给对象的属性。如果对象没有该属性,则为1;若已经有了则+1.最后遍历对象的属性得到最大值和该字符。
代码:
var str = 'ashdfdjklwfiojslkfjdl'; // 测试用的字符串
var l = str.length;
var o = {};
for(var i = 0; i < l; i++){
var char = str.charAt(i);
if (o[char]){
o[char] += 1;
}else{
o[char] = 1;
} // str[i] 是H5新增的 // 获取对象的属性是中括号[],不是点.。
}
console.log(o); // 可以打印出对象看看
// 如何遍历对象的所有属性?————for in啊
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+'次');