자바스크립트는 명시적인 반복문(for, while 등) 외에도 배열을 손쉽게 순회할 수 있는 다양한 반복자(Iterator) 함수를 제공합니다. 이러한 함수들을 잘 활용하면 코드가 더 간결하고 가독성이 높아지며, 버그 발생 가능성도 줄어듭니다. 지금부터 대표적인 반복자 함수들을 하나씩 살펴보겠습니다.
1. forEach 함수
forEach는 배열의 모든 요소에 대해 인자로 전달된 함수를 실행합니다. 별도의 반환값은 없으며, 단순히 각 요소에 대해 특정 작업을 수행할 때 유용합니다.
예제
let people = ['Harry', 'Martha', 'John', 'Sam'] people.forEach(person => console.log(person.toUpperCase()));
위 코드는 배열의 각 이름을 대문자로 변환하여 출력합니다.
출력 결과
HARRY MARTHA JOHN SAM
2. map 함수
map 역시 배열의 모든 요소에 대해 전달된 함수를 실행하지만, 각 요소의 반환값으로 구성된 새로운 배열을 생성한다는 점이 forEach와 다릅니다. 원본 배열은 변경되지 않으므로 데이터 변환 작업에 매우 적합합니다.
예제
let people = ['Harry', 'Martha', 'John', 'Sam'] let upperCaseNames = people.map(person => person.toUpperCase()) console.log(upperCaseNames);
출력 결과
[ 'HARRY', 'MARTHA', 'JOHN', 'SAM' ]
3. filter 함수
filter는 배열의 각 요소에 대해 전달된 함수를 실행하고, 그 결과가 참(truthy)인 값들만 모아 새로운 배열을 만듭니다. 조건에 맞는 요소만 추출하고 싶을 때 사용합니다.
예제
let people = ['Harry', 'Martha', 'John', 'Sam'] console.log(people.filter(person => person[0] === 'H'));
위 예제는 첫 글자가 'H'로 시작하는 요소만 걸러냅니다.
출력 결과
['Harry']
그 외 유용한 반복자 함수들
이 외에도 자바스크립트에는 다양한 반복자 함수가 존재합니다.
- reduce: 배열의 모든 요소를 누적하여 단일 값으로 축소합니다.
- every: 모든 요소가 조건을 만족하는지 검사합니다.
- some: 하나라도 조건을 만족하는 요소가 있는지 검사합니다.
더 자세한 내용은 MDN 공식 문서에서 확인할 수 있습니다. 상황에 맞는 반복자 함수를 적절히 선택하면 훨씬 깔끔하고 효율적인 코드를 작성할 수 있습니다.