'Zhaochucichuzuiduodezifu'와 같은 문자열에서 가장 많이 나타나는 캐릭터를 찾고 싶습니다. 이 기사는 방법과 아이디어를 자세히 설명합니다.
먼저 두 개의 문자열 객체에 두 가지 메소드를 소개합니다 : indexof () 및 charat () 메소드
indexof () 메소드는 문자열에서 지정된 문자열 값의 첫 번째 발생을 소개합니다.
charat () 메소드는 지정된 위치에서 리턴 문자를 소개합니다.
먼저 작은 테스트를 수행하여 각 'I'가 문자열 'Woainixiaoli'에 나타나는 위치를 찾으십시오.
<cript> var arr = 'woainixiaoli'; var index = -1; // 인덱스 값을 제어하기 위해 변수 인덱스를 정의합니다. // A를 찾을 수 없을 때, 즉 indexof ()의 값은 -1이면 루프 종료는 {index = arr.indexof ( "i", index + 1); // 두 번째 매개 변수 index+1을 사용하여 각 조회는 문자 A의 다음 인덱스 위치에서 시작하여 마지막 검색이 찾을 때 (index! = -1) {// 문자 iconsole.log (index); // output a}} while (index! = -1); </script>의 위치위의 코드가 실행되면 콘솔 출력이 있습니다
주제로 가서 문자열에서 가장 많은 문자를 찾으십시오.
방법 1 : 배열 사용 (단점이 있습니다. 두 개 이상의 문자가 나타나면 하나만 찾을 수 있습니다).
<cript> var str = "zhaochucichuzuiduodezifu"; var arr = []; // (var i = 0, length = str.length; i <length; i <length; i ++)를 통해 새로운 배열 // 루프를 정의합니다. {var j = 0; // 각 문자를 찾으십시오. {j ++;}} while (index! = -1); arr [j] = str [i]; // 문자열의 문자를 배열 ARR을 j로 인덱싱 한 상태에서 데이터에 str를 지정합니다. 여러 루프 후에는 반복 된 할당이 발생합니다. // 후속 할당은 이전 과제를 덮어 쓰지 만, 가장 많은 문자를 가진 우리의 찾기} console.log (arr); console.log ( "대부분의 문자는" + arr [Ar위의 코드가 실행되고 콘솔을 출력 한 결과는 다음과 같습니다.
또한 출력 배열 ARR 에서이 방법이 동일한 횟수로 문자를 덮어 쓰고 하나만 표시 할 수 있음을 알 수 있습니다. 동일한 최대 횟수로 2 개의 문자가 나타나면이 방법은 하나만 얻을 수 있습니다. 이를 기반으로 객체로 해결하려면 다음 방법을 참조하십시오.
방법 2 : 객체 사용 (권장)
<cript> var st = "zhaochucichuzuiduodezifu"; var o = {}; for (var i = 0, length = str.length; i <longth; i ++) {// var char = str [i]; var char = str.charat (i); if (o [char]) {char]의 속성 O, o [char]는 attribute is the attribute of a verection of a verection is a verection is a verection is a verection of the Object of the Object입니다. 발생 O [char] ++; // 1} else {O [char] = 1; // 첫 번째로 발생하면 발생 횟수는 1}} console.log (o)로 표시됩니다. // 출력은 각 문자와 발생 번호를 기록하는 완전한 객체이며 // 객체를 통해 이동하여 가장 많이 발생하는 캐릭터를 찾습니다. var max = 0; var maxch = null; for (var key in o) {if (max <o [key]) {max = o [key]; // 발생 수가 가장 많은 MaxCHAR MAXCHAR = KEY; // 해당 문자는 현재 키입니다}} console.log ( "가장 많은 사건은" + maxchar); console.log ( "발생 횟수는" + max); </script>위의 코드가 실행되고 콘솔을 출력 한 결과는 다음과 같습니다.
이 방법은 방법 1의 문제를 해결하고 각 문자의 발생 수를 명확하게 기록 할 수 있습니다. 같은 횟수가 같은 두 문자가 있으면 객체에서 명확하게 볼 수 있습니다.
그러나 여전히 단점이 있습니다. 동시에 가장 많은 횟수의 캐릭터를 직접 출력 할 수 없습니다. 추가 판단 조건이 필요합니다. 완벽한 코드는 다음과 같습니다. o (∩_∩) o
<cript> var str = "nininihaoa"; var o = {}; for (var i = 0, length = str.length; i <length; i ++) {var char = str.charat (i); if (o [char]) {o [char] ++; // 1} else {O [char] = 1; // 첫 번째 발생이 기록되면 시간 수는 1}} console.log (o)로 기록됩니다. // 출력은 각 문자와 그 발생 번호를 녹음하는 완전한 객체이며 // 객체를 통해 이동하고 가장 많은 사건으로 var max = 0; for (var key in o) {if (max <o [key]) {max = o [key]; // 최대의 최대 수가 가장 큰 사람은 항상 저장된}}}}}}}} {if (o [key] == max) {//console.log(ky);console.log(" 가장 많은 문자는 " + key); console.log (" + max);}}} </script>결과는 다음과 같습니다.
위는 편집자가 가장 일반적인 캐릭터가 JS 문자열에 나타나는 것을 소개하는 캐릭터입니다. 나는 그것이 당신에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!