>  기사  >  웹 프론트엔드  >  javascript는 가장 많이 반복되는 문자를 얻습니다_javascript 팁

javascript는 가장 많이 반복되는 문자를 얻습니다_javascript 팁

WBOY
WBOY원래의
2016-05-16 15:50:491238검색

자바스크립트는 가장 많이 반복되는 문자를 얻습니다

/**
  取出字符串中重复字数最多的字符
*/
var words = 'sdfghjkfastgbyhnvdstyaujskgfdfhlaa';       //创建字符串
var word,                           //单个字符
  length;                          //该字符的长度
//定义输出对象
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보다 큰지 확인합니다.

사실인 경우 업데이트하세요

그런 다음 문자열이 교체될 때까지 다음 재귀를 입력하고 종료합니다

출력 객체는 가장 자주 사용되는 문자와 반복 횟수를 저장합니다

위 내용은 이 글의 전체 내용입니다. 모두 마음에 드셨으면 좋겠습니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.