视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
javascript获取重复次数最多的字符_javascript技巧
2020-11-27 21:40:28 责编:小采
文档

javascript获取重复次数最多的字符

输出对象
var max = {
 wordName : '',                      //重复次数最多的字符
 wordLength : 0                      //重复的次数
};
//递归方法,传入字符串
(function(words) {
 if (!words) return; //如果字符串已经变空则返回,结束递归
 word = words[0]; //取出字符串中的第一个字符
 length = words.length; //将length设为当前字符串长度
 words = words.replace(new RegExp(word, 'g'), ''); //返回将字符串剔除当前字符的剩余字符串
 length = length - words.length; //重设length为当前字符在字符串中的长度
 if (length > max.wordLength) //如果该字符重复次数大于maxLength,则重设maxLength为当前字符重复次数
 max = { //重设对象的值
 wordName : word, 
 wordLength : length 
 }; 
 arguments.callee(words); //递归调用,传入剩余字符串
})(words);
console.log(max.wordName+"\n"+max.wordLength); //递归结束后输出结果
  



今天上午偶然看见这样的一个问题.看到网上大部分是用两个循环做出来的.然后自己用递归写了一下

思路是

  每递归一次.取出第一个字符.从字符串中剔除相同符号的字符,并拿之前的字符串长度减去剔除后的字符串长度.

  得到的是该字符串中当前字符所重复次数.

  判断该字符重复次数是否大于当前输出对象中存储的maxLength.

  如true,则更新

  然后进入下次递归,直到字符串被替换完,终止

  输出对象中存储的就是次数最多的字符以及重复的次数

以上所述就是本文的全部内容了,希望大家能够喜欢。

下载本文
显示全文
专题