javascript查找字符串中出现最多的字符以及出现了几次
var str = 'abaasdffggghhjjjkkgfddsssss3444343';
var obj = {};
for(var i = 0; i < str.length; i++){
var chars = str.charAt(i);
if(obj[chars]){//chars是字符串的每一个字符
obj[chars]++;//同时让他是这个对象的属性名
}else{
obj[chars] = 1;
}
}
console.log(obj);
var max = 0;
for(var k in obj){
// k是属性名
// obj[k]是属性值
if(max < obj[k]){
max = obj[k]
ch = k;
}
}
console.log('出现了' + max + '次');
console.log('这个字符是' + ch);
关键步骤:
- 利用for循环遍历这个字符串。
- 利用字符串的charAt()方法 => charAt()方法根据位置返回字符串。
- 定义一个全局的空对象,不要写在for循环内部。
- 定义一个变量chars = str.charAt(i)。
- 在for循环内部用if-else判断,如果这个对象内已经有了这个值chars,就让chars自增,反之,让这个属性值为1,最终得到一个对象。
- 遍历对象obj。定义一个全局变量max。
- 在for-in遍历内部if判断,如果max小于这个属性值,就把这个属性值给max。把k赋值给ch,就可以知道出现最多的字符,max是出现的次数。