js怎样猎取字符串中涌现次数最多的字符

我是一个不太会表达的人,所以我尽量的用代码来阐释我的明白和思索,空话不多说,我就直接放代码了:

function getStingMax(str){
     if(typeof str !== "string"){
         alert("请传入string范例的数据")
         return
     }
     let countObj ={},max=[{key:str[0],num:1}];
     for(let i=0;i<str.length;i++){
        let char=str[i];
        countObj[char]=countObj[char]?countObj[char]+1:1;   
     }
     
     for(let char in countObj){
         if(max[0].num<countObj[char]){
            max=[];
            max[0]={key:char,num:countObj[char]}
        }else if(max[0].num===countObj[char]){
            max.push({key:char,num:countObj[char]})
        }
    }
     console.log(max);
     return {
         max:max
     }
}

在这段代码中,我先做了一个参数校验,保证传入的是字符串。然后将外部传入的str举行了计数,并将计数效果放在了countObj中。再对countObj的每一个属性举行遍历,找出涌现次数最多的字符串合集存入max数组,并把max数组打印出来。末了将获得max数组放在返回对象的max属性中返回出去(用对象返回是为了轻易该要领今后的拓展)。

    原文作者:胡晓峰
    原文地址: https://segmentfault.com/a/1190000018480094
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞