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

JavaScript로 문자열 내 모음 개수를 세어 반환하는 방법

JavaScript에서 알파벳을 포함할 수 있는 문자열을 입력받아, 그 안에 존재하는 모음(vowel)의 개수를 세어 반환하는 함수를 작성해야 합니다.

접근 방식

이 문제는 다음과 같은 단계로 해결할 수 있습니다.

먼저 입력받은 문자열을 toLowerCase() 메서드를 사용해 모두 소문자로 변환합니다. 이렇게 하면 대문자와 소문자를 구분하지 않고 모음을 확인할 수 있습니다.

다음으로 모음 문자들을 담은 기준 문자열(legend)인 'aeiou'를 준비합니다. 그런 다음 반복문을 통해 문자열의 각 문자를 하나씩 확인하며, 해당 문자가 기준 문자열에 포함되어 있으면 카운트를 증가시킵니다.

예제

다음은 전체 코드입니다 −

const str = 'this is a string';
const countVowels = (str = '') => {
    str = str.toLowerCase();
    const legend = 'aeiou';
    let count = 0;
    for(let i = 0; i < str.length; i++){
        const el = str[i];
        if(!legend.includes(el)){
            continue;
        };
        count++;
    };
    return count;
};
console.log(countVowels(str));

출력 결과

콘솔에 출력되는 결과는 다음과 같습니다 −

4

코드 설명

위 코드에서 사용된 문자열 'this is a string'에는 모음이 총 4개(i, i, a, i) 포함되어 있으므로 결과값으로 4가 출력됩니다.

화살표 함수(arrow function) 형태로 작성된 countVowels 함수는 매개변수에 기본값으로 빈 문자열('')을 지정하여, 인자가 전달되지 않았을 때 발생할 수 있는 오류를 방지합니다. 또한 includes() 메서드를 활용해 각 문자가 모음 목록에 속하는지 간결하게 판별하며, 모음이 아닌 경우 continue 문으로 다음 문자로 넘어갑니다.

이 방식 외에도 정규표현식과 match() 메서드를 조합하거나, filter() 메서드를 사용하는 등 다양한 방법으로 같은 결과를 얻을 수 있습니다.