方法一

        先获取字符和次数的对象,再统计对象里面的最大值,最后拿最大值去对比。

<script>
    var str = 'aabbbcccccdddddddd';
    var obj = {}; //创建一个对象
    for(var i=0;i<str.length;i++){//每一个字符都要知道次数,所以要循环
        var char = str.charAt(i);//返回指定索引处的字符
        if(obj[char]){
            obj[char]++
        }else{
            obj[char] = 1;
        }
    }
     console.log(obj);//{a:2,b:3,c:5,d:8}
     //统计出来最大值
     var max = 0;
     for(var key in obj){
        if(max<obj[key]){
            max = obj[key];
        }
     }
     console.log(max);//8
     //拿最大值去对比
     for(var key in obj){
        if(obj[key] == max){
            console.log('最多的字符是' + 'key');//d
            console.log('出现的次数是' + 'max');//8
        }
     }
</script>

方法二

        先获取次数最多的字符和次数的变量,对原始字符串进行排序(字符串转为数组,数组进行排序后转为字符串),正则匹配到重复内容,再进行判断。

 <script>
        //需求:判断一个字符串中出现次数做多的字符,并统计次数
        //出现次数最多的字符的变量
        var value = '';
        // 出现的次数的变量
        var index = 0;
        //原始字符串改为计算好的字符串(排序)
        var str = 'avsgsgehdgyydgyyyyesnnngs';
        //字符串转换为数组
        var arr = str.split('');
        //数组进行排序再改为字符串
        var str = arr.sort().join('');
        //正则匹配到了重复内容
        var reg = /(\w)\1+/g;
        //判断
        str.replace(reg,function(val,item){
            if(index<val.length){
                index = val.length;
                value = item;
            }
        })
        console.log('出现次数做多的字符是:'+value,'出现的次数是:'+index);
    </script>

Logo

基于 Vue 的企业级 UI 组件库和中后台系统解决方案,为数万开发者服务。

更多推荐