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

实现逻辑:先将字符串遍历,保存到json对象,每个字符串作为key,值默认为1次,如果字符串出现多次,每出现一次将key值加1;声明一个中间变量,遍历json对象,将最大值保存到中间变量,同时保存最大值相关数据。

 1 <script>
 2     /**
 3      * @param {String}str 只接受字符串类型
 4      * @return{JSON} key:出现最多字符, value:出现次数;  数组类型不是String类型,则返回空对象
 5      * */
 6     function statisticsString(str) {
 7         //返回为json对象
 8         let returnObj={};
 9         //判断是否是字符串
10         if(Object.prototype.toString.call(str)!="[object String]"){
11             return returnObj;
12         }
13         //循环字符串,将同字符相加
14         let jsonStr = {};
15         for (let i = 0; i < str.length; i++) {
16             if (jsonStr[str[i]] == undefined) {
17                 jsonStr[str[i]] = 0;
18             }
19             jsonStr[str[i]]++;
20         }
21 
22 
23         //最大值
24         let num=0;
25         //每次循环比较,循环值大于num时,将循环值赋给num
26         for(let item in jsonStr){
27             if(num<jsonStr[item]){
28                 num=jsonStr[item];
29                 returnObj={"key":item,"value":jsonStr[item]};
30             }
31         }
32         return returnObj;
33     }
34     let obj1=statisticsString(3543);
35     let obj2=statisticsString("3546456");
36 
37     console.log((obj1.key==undefined)+":结果:"+JSON.stringify(obj1));
38     console.log((obj2.key==undefined)+":结果:"+JSON.stringify(obj2));
39 </script>

 

posted @ 2018-12-13 22:15  魔魂小虫  阅读(858)  评论(0编辑  收藏  举报