JS中判断字符串中出现次数最多的字符及出现的次数的简单实例

在这个问题之前先看看一个方法
charAt()方法可返回指定位置的字符。

<script type="text/javascript">
    //charAt()可返回指定的字符串
    var str = "hello world!";
    document.write(str.charAt(1)); //e
script>

然后看看标题上的这个问题该如何实现?
思路如下:

  • 创建一个空对象obj,遍历字符串每一项,然后判断对象中是否当前str的值。
  • 如果对象中有这个值的话,给这个字符加1
  • 如果对象中没有这个值的话,让当前str的值加入到obj对象中。
  • 然后遍历对象
var str = "abcaaaaacdef";
//console.log(str.length);
var obj = {};
for(var i = 0; i < str.length; i++){
    if( !obj[str.charAt(i)]){
        obj[str.charAt(i)] = 1;
    }else{
        obj[str.charAt(i)]++;
    }
}
//存出现次数最多的值和次数
var number = '';
var num = 0;
console.log("obj为:",obj); //Object {a: 6, b: 1, c: 2, d: 1, e: 1…}
//i代表每一项
for(var i in obj){
    //console.log("i为:",i);
    //obj[i] 为每一项的值
    console.log("obj",obj[i]);
    if(obj[i]>num){
        num = obj[i];
        number = i;
    }
}
console.log("最终出现最多的字母是:"+ number + ",次数为:"+ num);//最终出现最多的字母是:a,次数为:6

参考网址1
参考网址2

你可能感兴趣的:(javascript)