统计出现最多的字符和次数

(一)、基础知识

字符串charAt()方法可返回指定位置的字符

语法:string.charAt(index)

参数 描述
index 必需。表示字符串中某个位置的数字,即字符在字符串中的位置。
var str = "HELLO WORLD";
var n = str.charAt(0);
console.log(n);
输出结果:'H'

如果判断js对象是否存在该属性

//利用字面量创建一个对象
var o = {
    age:18
}
//访问对象的属性
if(o['age']) {
    console.log('存在该属性')
}else {
    console.log('该属性不存在')
}
输出结果:存在该属性
如果访问一个不存在的属性就会输出该属性不存在

(二)、核心思路

  1. 利用charAt()方法遍历这个字符串
  2. 把每个字符都存储给对象,如果对象没有该属性,就先赋值为1,如果存在了就+1
  3. 遍历对象,得到最大值和该字符
  4. 在遍历的过程中,把字符串中的每个字符作为对象的属性存储在对象中,对应的属性值是该字符出现的次数

代码实现:

var str = 'diguaaixiaran';
var o = {};
for (var i = 0; i < str.length; i++) {
    var chars = str.charAt(i);
    //chars是字符串每一个字符
    //o[chars]是属性值
    if (o[chars]) {
        o[chars]++;
    } else {
        o[chars] = 1;
    }
}
//遍历对象,找出最大的次数
var max = 0;
var ch = '';
for (var k in o) {
    //k得到属性名,最多的属性名赋给ch
    //o[k]得到属性值,最多的属性值赋给max
    if (o[k] > max) {
        max = o[k];
        ch = k;
    }
}
console.log('最多的字符是' + ch + ',' + '次数为' + max);
输出结果:最多的字符是a,次数为4