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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值