이번 글에서는 문자열 배열을 첫 번째 인수로, 검색할 단일 문자를 두 번째 인수로 받는 JavaScript 함수를 작성하는 방법을 알아보겠습니다.
이 함수는 두 번째 인수로 전달된 문자가 배열 내 어떤 문자열에든 포함되어 있으면 true를 반환하고, 어느 곳에도 존재하지 않으면 false를 반환해야 합니다.
구현 아이디어
가장 기본적인 접근 방식은 배열의 인덱스를 활용한 for 루프입니다.
- 배열의 각 요소를 인덱스를 통해 하나씩 순회합니다.
- String.prototype.includes() 메서드로 현재 문자열에 해당 문자가 포함되어 있는지 확인합니다.
- 문자를 발견하면 즉시 true를 반환하여 불필요한 반복을 줄입니다.
- 루프가 끝날 때까지 문자를 찾지 못하면 최종적으로 false를 반환합니다.
예제 코드
실제 구현 코드는 다음과 같습니다.
const arr = ['first', 'second', 'third', 'last'];
const searchForLetter = (arr = [], letter = '') => {
for(let i = 0; i < arr.length; i++){
const el = arr[i];
if(!el.includes(letter)){
continue;
};
return true;
};
return false;
};
console.log(searchForLetter(arr, 's'));
console.log(searchForLetter(arr, 'x'));
실행 결과
콘솔에 출력되는 결과는 다음과 같습니다.
true
false
위 예제에서 's'는 'first'와 'second' 문자열에 포함되어 있으므로 true가 반환됩니다. 반면 'x'는 배열의 어떤 문자열에도 존재하지 않기 때문에 false가 반환됩니다.
마무리
이처럼 배열의 인덱스를 이용한 루프와 includes() 메서드를 조합하면, 복잡한 로직 없이도 간단하고 효율적으로 문자 검색 기능을 구현할 수 있습니다. 조기 반환(early return)을 활용하면 원하는 문자를 찾는 즉시 함수가 종료되므로 성능 면에서도 유리합니다.