이번 글에서는 문자열 배열을 입력받아 배열에 포함된 모든 모음(a, e, i, o, u)의 개수를 세는 JavaScript 함수를 작성해 보겠습니다. 배열의 각 요소는 한 글자일 수도 있고, 여러 글자로 이루어진 단어일 수도 있습니다.
문제 접근 방식
구현 방법은 간단합니다. 먼저 모음으로 판단할 기준 문자열 'aeiou'를 정의하고, 각 문자가 이 기준에 포함되는지 확인하는 함수를 만듭니다. 그다음 배열의 모든 요소를 순회하면서 각 문자열의 문자를 하나씩 검사하여 모음이면 카운트를 증가시키면 됩니다.
예제 코드
실제 코드를 살펴보겠습니다.
const arr = ['Amy','Dolly','Jason','Madison','Patricia'];
const countVowels = (arr = []) => {
const legend = 'aeiou';
const isVowel = c => legend.includes(c);
let count = 0;
arr.forEach(el => {
for(let i = 0; i < el.length; i++){
if(isVowel(el[i])){
count++;
};
};
});
return count;
};
console.log(countVowels(arr));코드 설명
- legend: 모음을 판별하기 위한 기준 문자열입니다. 대소문자 구분이 필요하다면
'aeiouAEIOU'처럼 확장할 수 있습니다. - isVowel: 전달받은 문자가 기준 문자열에 포함되어 있는지 확인하는 화살표 함수입니다.
- forEach: 배열의 각 문자열 요소를 순회하며 내부 반복문으로 문자 하나하나를 검사합니다.
실행 결과
위 코드를 실행하면 콘솔에 다음과 같은 결과가 출력됩니다.
10
배열 ['Amy', 'Dolly', 'Jason', 'Madison', 'Patricia']에는 총 10개의 모음이 포함되어 있으므로 결과값은 10이 됩니다.