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>