js输出字符串中出现次数最多的字符与次数

function returnMaxStr(str) {
            //定义一个对象用于保存str的每一项以及出现次数。
            var obj={};
            // 去除字符串中的空格
            str = str.replace(/\s*/g,"");  
            //遍历str,循环其中的每一个字符,将某个字符的值及出现的个数拿出来作为json的key和value
            for(var i=0;i<str.length;i++){
                //判断对象中是否有当前str的值
                if(!obj[str.charAt(i)]){
                    //如果不存在 就将当前值添加到对象中,并赋值为1
                    obj[str.charAt(i)]=1
                }else{
                     //如果存在的话就让数组中已有的当前值的value值++;
                    obj[str.charAt(i)]++
                }
            }
            //存储出现最多的次数
            var num=0;
            //存储出现次数最多的值
            var value='';
            //遍历对象,利用比较法判断哪个字符出现的次数最多
            for(let j in obj){
                //如果当前项大于下一项,就让当前值更改为出现最多次数的值
                if(obj[j]>num){
                    num=obj[j]
                    value=j
                }
            }
            return{
                //输出出现最多的值和次数
                value,num
            }
        }
        var str = 'hellow world'
        var result = returnMaxStr(str);
        document.write(`出现次数最多的字符是:${result.value},出现了${result.num}次`)

总结一下:思路就是先将字符串中的空格去除,然后遍历字符串,利用charAt()返回指定位置的字符的方法判断新建的对象中是否已经存在某个字符,若不存在,将字符添加到对象中,赋值为1,若是已经存在的字符,则给他的值++,然后设定一个存放出现次数的变量,利用for…in遍历对象的属性,通过判断当前项与下一项的大小,最终保存的那个最大的值就是出现最多的次数。

有两个知识点需要做笔记

  1. str.charAt(index):返回指定位置的字符。index必需。表示字符串中某个位置的数字,即字符在字符串中的下标。
  2. for…in:用于遍历数组或者对象的属性(对数组或者对象的属性进行循环操作)。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值