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

JavaScript로 문자열 속 모음 개수 세는 방법

이번 글에서는 문자열을 인수로 받아 그 안에 포함된 모음(vowel)의 개수를 세는 자바스크립트 함수를 작성해 보겠습니다.

단순히 전체 모음 개수만 반환하는 것이 아니라, 각 모음(a, e, i, o, u)별로 몇 번 등장했는지를 객체(object) 형태로 매핑하여 반환하는 것이 목표입니다.

구현 아이디어

구현 절차는 다음과 같습니다.

  • split('') 메서드를 사용해 문자열을 개별 문자 배열로 분리합니다.
  • 모음 문자열 'aeiou'를 기준으로 각 문자가 모음인지 판별합니다.
  • toLowerCase()로 소문자로 변환하여 대소문자를 구분 없이 처리합니다.
  • 모음이라면 객체에 해당 모음의 카운트를 1씩 증가시키고, 처음 등장한 모음이라면 1로 초기화합니다.

예제 코드

const str = 'this is an example string';
const vowelCount = (str = '') => {
    const splitString = str.split('');
    const obj = {};
    const vowels = "aeiou";
    splitString.forEach((letter) => {
        if (vowels.indexOf(letter.toLowerCase()) !== -1) {
            if (letter in obj) {
                obj[letter]++;
            } else {
                obj[letter] = 1;
            }
        }
    });
    return obj;
};
console.log(vowelCount(str));

출력 결과

콘솔에는 다음과 같은 결과가 출력됩니다.

{ i: 3, a: 2, e: 2 }

결과 해석

입력 문자열 'this is an example string'에는 소문자 i가 3번, a가 2번, e가 2번 등장하므로 위와 같은 객체가 반환됩니다. 참고로 이 문자열에는 ou가 포함되어 있지 않기 때문에 결과 객체에 나타나지 않습니다.

이처럼 split, forEach, 그리고 객체의 동적 프로퍼티 할당을 조합하면 별도의 외부 라이브러리 없이도 간결하게 모음 개수를 집계할 수 있습니다.