Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript로 문자열 내 각 문자의 등장 횟수 세는 방법

문자열에서 각 문자가 몇 번 나타나는지 확인하고 싶다면, 각 문자의 빈도를 저장할 객체를 활용하는 것이 효과적입니다. 기본 원리는 간단합니다. 이미 존재하는 문자라면 해당 값에 1을 더하고, 처음 등장한 문자라면 1을 저장하는 방식입니다.

기본 원리

빈도수를 저장할 객체를 하나 준비합니다. 문자열을 한 글자씩 순회하면서 해당 문자가 객체에 이미 존재하는지 확인하고, 존재하면 카운트를 1 증가시키고, 존재하지 않으면 1로 초기화합니다.

예를 들어 다음과 같은 문자열이 있다고 가정해 보겠습니다.

var sentence = "My name is John Smith";

예제 코드

다음은 문자열 내 각 문자의 등장 횟수를 계산하는 JavaScript 코드입니다.

var sentence = "My name is John Smith";
sentence = sentence.toLowerCase();
var noOfCountsOfEachCharacter = {};
var getCharacter, counter, actualLength, noOfCount;
for (counter = 0, actualLength = sentence.length; counter < actualLength; ++counter) {
    getCharacter = sentence.charAt(counter);
    noOfCount = noOfCountsOfEachCharacter[getCharacter];
    noOfCountsOfEachCharacter[getCharacter] = noOfCount ? noOfCount + 1 : 1;
}
for (getCharacter in noOfCountsOfEachCharacter) {
    if (getCharacter != ' ')
    console.log("Character=" + getCharacter + " Occurrences=" + noOfCountsOfEachCharacter[getCharacter]);
}

코드 설명

먼저 toLowerCase() 메서드를 사용해 문자열 전체를 소문자로 변환합니다. 이렇게 하면 대소문자 구분 없이 동일한 문자를 하나의 항목으로 집계할 수 있습니다. 이후 charAt()으로 문자열을 한 글자씩 읽으면서 객체에 저장된 기존 카운트를 확인하고, 삼항 연산자를 통해 카운트를 증가시키거나 1로 초기화합니다. 마지막 반복문에서는 공백 문자를 제외한 나머지 문자들의 등장 횟수를 콘솔에 출력합니다.

실행 방법

위 프로그램을 실행하려면 Node.js 환경에서 다음 명령어를 사용합니다.

node fileName.js

여기서는 파일 이름이 demo40.js라고 가정합니다.

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

PS C:\Users\Amit\JavaScript-code> node demo40.js
Character=m Occurrences=3
Character=y Occurrences=1
Character=n Occurrences=2
Character=a Occurrences=1
Character=e Occurrences=1
Character=i Occurrences=2
Character=s Occurrences=2
Character=j Occurrences=1
Character=o Occurrences=1
Character=h Occurrences=2
Character=t Occurrences=1

결과를 보면 문자 'm'은 3번, 'n', 'i', 's', 'h'는 각각 2번 등장했으며, 나머지 문자들은 1번씩 나타난 것을 확인할 수 있습니다. 공백 문자는 조건문으로 필터링되어 출력되지 않았습니다.