이번 글에서는 문장(문자열) 안에 특정 문자가 총 몇 번 등장하는지 세는 JavaScript 함수를 작성하는 방법을 알아보겠습니다.
접근 방법
구현 아이디어는 간단합니다. 문자열을 처음부터 끝까지 for 루프로 순회하면서, 각 위치의 문자가 찾고자 하는 문자와 일치하면 카운트를 1씩 증가시킵니다. 일치하지 않는 경우에는 continue 문을 사용해 현재 반복의 나머지 코드를 건너뛰고 다음 반복으로 바로 이동합니다.
예제 코드
함수를 직접 작성해 보겠습니다 −
const string = 'This is just an example string for the program';
const countAppearances = (str, char) => {
let count = 0;
for(let i = 0; i < str.length; i++){
if(str[i] !== char){
// continue를 사용해 다음 반복으로 이동
continue;
}
// 여기에 도달했다면 str[i]와 char가 같다는 의미이므로
// 카운트를 증가시킵니다.
count++;
}
return count;
};
console.log(countAppearances(string, 'a'));
console.log(countAppearances(string, 'e'));
console.log(countAppearances(string, 's'));
출력 결과
콘솔에 출력되는 결과는 다음과 같습니다 −
3
3
4
코드 설명
countAppearances 함수는 두 개의 매개변수를 받습니다. str은 검색 대상 문자열이고, char는 찾으려는 문자입니다. 루프 내에서 현재 인덱스의 문자가 찾는 문자와 다르면 continue가 실행되어 이후 코드를 건너뛰고, 같다면 count++로 개수를 하나씩 늘립니다. 모든 문자를 확인한 뒤 최종 카운트를 반환합니다.
예제 문자열에서는 'a'가 3번, 'e'가 3번, 's'가 4번 나타나므로 위와 같은 결과가 출력됩니다. 참고로 break는 조건에 따라 루프 자체를 완전히 종료할 때 사용하는 문으로, 이 예제처럼 전체 문자열을 모두 확인해야 하는 경우에는 continue만으로 충분합니다.