JavaScript의 Map 객체가 제공하는 forEach() 메서드는 맵에 저장된 모든 키-값(key-value) 쌍을 삽입 순서대로 순회하면서, 각 요소마다 지정된 콜백 함수를 한 번씩 실행합니다. 이를 활용하면 별도의 반복문 없이도 맵의 전체 데이터를 간결하게 처리할 수 있습니다.
문법(Syntax)
forEach() 메서드의 기본 문법은 다음과 같습니다.
mapVar.forEach(callback[, thisArg])
콜백 함수에는 순회 과정에서 아래 세 가지 인자가 순서대로 전달됩니다.
- value – 현재 순회 중인 요소의 값
- key – 현재 순회 중인 요소의 키
- map – 순회 대상이 되는 Map 객체 자신
두 번째 인자인 thisArg를 함께 전달하면, 콜백 함수 내부에서 this 키워드로 참조할 값을 직접 지정할 수 있습니다.
예제
다음은 forEach() 메서드를 사용해 Map 객체에 저장된 모든 요소를 화면에 출력하는 예제입니다.
<html>
<head>
<title>JavaScript Example</title>
</head>
<body>
<script type="text/javascript">
var mapVar = new Map();
mapVar.set('1', 'Java');
mapVar.set('2', 'JavaFX');
mapVar.set('3', 'HBase');
mapVar.set('4', 'Neo4j');
// 각 요소의 값을 출력하는 콜백 함수
function show(values) {
document.write(values);
document.write("<br>");
}
mapVar.forEach(show);
</script>
</body>
</html>
실행 결과
Java JavaFX HBase Neo4j
위 예제에서 콜백 함수 show()는 첫 번째 인자로 값(value)을 전달받아 화면에 출력합니다. 만약 키까지 함께 확인하고 싶다면, 콜백 함수를 function show(value, key)처럼 두 번째 매개변수를 포함해 선언하면 됩니다. 참고로 Map 객체는 요소가 추가된 순서를 그대로 유지하므로, forEach()로 순회할 때도 항상 삽입 순서대로 데이터가 처리됩니다.