我爱撸码,撸码使我感到快乐!
大家好,我是Counter
本节讲讲如何利用JS来查找任意给定的字符串,求字符串中出现次数最多的字符,出现的次数。
直接上代码了,该注释的都注释啦。非常轻松加愉快。
效果如下: (当然你也可以自己随便定义一个字符串,传进函数,就可以求出值了)
代码给出,还是老样子,每行都注释。欢迎一起技术探讨,一起进步。
// 随意定义一个字符串 var str = "111iiiw2shhfel000"; // 定义函数 function num(str) { // 定义一个空对象,因为这边要求出现最多次数,以及出现的字符,这边使用对象的方式再合适不过了,键值对的形式 var obj = {}; // 求出字符串的长度 var len = str.length; // for循环如果遍历整个字符串 for( var i = 0; i < len; i++) { // 将每个字符赋值给alpha var alpha = str[i]; // 如果定义的obj里有这个字符的话,那么这个字符的值加1 if ( obj[alpha] ) { obj[alpha]++; } // 否则的话这个字符的值等于1,刚开始肯定都是走这边,因为对象使我们定义的空对象,现在才开始增加属性 else { obj[alpha] = 1; } } // 随意定义一个出现最多的次数 var maxNum = -1; // 遍历obj对象 for( key in obj) { // 求出obj里出现最多字符的次数并且赋值给maxNum if ( obj[key] > maxNum) { maxNum = obj[key]; } } // 定义一个空数组 var maxKey = []; // 再次遍历obj对象 for( key in obj) { // 如果当前的obj里的字符出现次数等于maxNum的话,就像我们定义的空数组里添加这个字符 if ( obj[key] == maxNum) { maxKey.push(key); } } // 将结果打印出来 console.log('出现最多次数的字符是:' + maxKey + ' 出现次数为:' + maxNum); }