js - 获取字符串出现最多的字符和次数

方法一:
  /**
       * @param {String}str 只接受字符串类型
       * @return{JSON} key:出现最多字符, value:出现次数;  数组类型不是String类型,则返回空对象
       **/
    function getMax(str){
        let hash = {};
        let num = 0;
        let json = {}; //返回的对象
        //判断是否是字符串
        if(Object.prototype.toString.call(str) != "[object String]") {
            return json;
        }
        for(let i = 0; i < str.length; i++){
            if(hash[str[i]] === undefined){
                hash[str[i]] = 1
            }else{
                hash[str[i]]++
            }
        }
        for(let item in hash){
            if(num < hash[item]){
                num = hash[item]
                json = {"字符": item, "次数": hash[item]}
            }
        }
        return json;
    }
方法二:
function getMax(str){
         let obj = {};
         let num = 0;
         let letter = '';
         for(let i = 0; i < str.length; i++){
            if(obj[str[i]]){
                obj[str[i]]++;
                if(num < obj[str[i]]){
                    num = obj[str[i]];
                    letter = str[i]
                }
            }else{
                obj[str[i]] = 1;
            }
         }
         
         return letter + ':' + num
       }
方法三:
var s = 'aaabbbcccaaabbbaaabbbbbbbbbb';
       var a = s.split('');
       a.sort();
       s = a.join('');
       var pattern = /(\w)\1*/g;
       var ans = s.match(pattern);   
       ans.sort(function(a, b) {
           return b.length - a.length;
        });
       console.log(ans);
       console.log(ans[0][0] + ': ' + ans[0].length);

转载于:https://www.cnblogs.com/sunidol/p/11512458.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值