美文网首页
判断一个字符串中出现次数最多的字母或者数组中出现次数最多的元素

判断一个字符串中出现次数最多的字母或者数组中出现次数最多的元素

作者: 漫舞莲华倾人醉 | 来源:发表于2019-08-23 11:27 被阅读0次

    1. 判断一个字符串中出现次数最多的字母:

    function maxCount(str) {  

       var obj={};

       for(var i=0;i<str.length;i++){  

           var key=str[i];  

           if(obj[key]){

               obj[key]++;  

           }else{  

               obj[key]=1;

           }  

       }  

       var maxCount=0;

       var maxString="";

       for(var key in obj){  

           if(maxCount<obj[key]){  

               maxCount=obj[key]; 

               maxString=key;  

           }  

       }  

       return "出现次数最多的字母:"+maxString+"出现了"+maxCount+"次";  

        }  

    2. 判断数组中出现次数最多的元素:

    function maxCountElement(arr) {  

       var obj={};

       for(var i=0;i<arr.length;i++){  

           var key=arr[i];  

           if(obj[key]){

               obj[key]++;  

           }else{  

               obj[key]=1;

           }  

       }  

       var maxCount=0;

       var maxElement=arr[0];

       for(var key in obj){  

           if(maxCount<obj[key]){  

               maxCount=obj[key]; 

               maxElement=key;  

           }  

       }  

       return "该数组中出现次数最多的元素:"+maxElement+"出现了"+maxCount+"次";  

        }  

    注: 上面的代码有一点小的瑕疵,如果数组中两个不同的元素出现的次数一样多,结果只会体现第一次遇见的次数最多的                   元素,和它次数一样多的其他元素会被忽略掉。

    改进方案代码如下:

    function maxCountElement(arr) {  

       var obj={};

       for(var i=0;i<arr.length;i++){  

           var key=arr[i];  

           if(obj[key]){

               obj[key]++;  

           }else{  

               obj[key]=1;

           }  

       }  

       var maxCount=0;

       var maxElement=arr[0];

       var eq = [];

       for(var key in obj){  

           if(maxCount < obj[key]){  

               maxCount=obj[key]; 

               maxElement=key;  

               eq.length=0;

           }else if(maxCount === obj[key]){  

            eq.push(key);

           }

       }  

       if(eq.length > 0){

        for(var j=0;j<eq.length;j++){

        maxElement+=','+eq[j];

        }

       }

       return "该数组中出现次数最多的元素:"+maxElement+"-----出现了:"+maxCount+"次";  

        }  

        var arr = [1,2,2,3,3,4,5,6];

        var res = maxCountElement(arr);

        console.log(res);

    相关文章

      网友评论

          本文标题:判断一个字符串中出现次数最多的字母或者数组中出现次数最多的元素

          本文链接:https://www.haomeiwen.com/subject/siuzsctx.html