JS实现找出字符串中出现最多的字符和次数

673 阅读1分钟
      let str = "abcdefabcdefabcdeadfkjafd";
      let o = {};
      //遍历str,统计每个字符出现的次数
      for (let i = 0; i < str.length; i++) {
      //char就是对象o的一个属性,o[char]是属性值,存储出现的次数
        let chars = str.charAt(i);
        if (o[chars]) {  //如果char属性存在,属性值+1 
          o[chars]++;    //次数加1
        } else {        //char属性不存在为1(即字符第一次出现) 
            o[chars] = 1;    //若第一次出现,次数记为1
        }
     }
    console.log(o);   
    //输出的是完整的对象,记录着每一个字符及其出现的次数
    //输出{a:1, c:3, d:2, e:1, f:1, h:3, i:3, o:2, u:5, z:3}
    //遍历对象,找到出现次数最多的字符和次数
    let max = 0;       //存储出现次数最多的次数
    let maxChar = null; //存储出现次数最多的字符
    for (let key in o) {
        if (max < o[key]) {
            max = o[key];   //max始终储存次数最大的那个
            maxChar = key;  //那么对应的字符就是当前的key
        }
    }
   console.log("最多的字符是" + maxChar + ',出现了'+ max +'次');