JavaScript의 Map 객체에서 제공하는 entries() 함수는 해당 Map 객체의 이터레이터(iterator)를 반환합니다. 이 이터레이터를 활용하면 Map에 저장된 키(key)와 값(value) 쌍을 하나씩 순차적으로 꺼내올 수 있습니다.
각 항목은 [키, 값] 형태의 배열로 반환되며, next() 메서드를 호출할 때마다 다음 항목으로 이동합니다.
문법(Syntax)
mapVar.entries()
예제 1: for 반복문으로 전체 키-값 쌍 출력하기
아래 예제는 entries()로 얻은 이터레이터를 반복문과 함께 사용하여 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');
var it = mapVar.entries();
for(i=0; i<mapVar.size; i++) {
document.write(it.next().value);
document.write(" <p> ");
}
</script>
</body>
</html>실행 결과
1,Java 2,JavaFX 3,HBase 4,Neo4j
위 결과에서 볼 수 있듯이, 각 항목은 [키, 값] 배열 형태로 출력됩니다. it.next().value는 이터레이터의 다음 항목을 가져오고, 그 안에 담긴 [키, 값] 배열을 반환합니다.
예제 2: next() 메서드로 개별 항목 접근하기
반복문 없이 next() 메서드를 직접 호출하면 원하는 시점에 항목을 하나씩 가져올 수 있습니다.
<html>
<head>
<title>JavaScript Example</title>
</head>
<body>
<script type="text/javascript">
var mapVar = new Map();
mapVar.set('1', 'Raju');
mapVar.set('2', 'Ram');
mapVar.set('3', 'Rahim');
mapVar.set('4', 'Robert');
var it = mapVar.entries();
document.write(it.next().value);
document.write("<br>");
document.write(it.next().value);
</script>
</body>
</html>실행 결과
1,Raju 2,Ram
정리 및 참고 사항
entries()는 Map의 삽입 순서대로 키-값 쌍을 순회하는 이터레이터를 반환합니다.- 각 항목은
[키, 값]형태의 배열이므로, 구조 분해 할당(destructuring)으로const [key, value] of map.entries()처럼 사용할 수도 있습니다. - Map 자체가 이터러블(iterable)이기 때문에
for...of문에 Map을 직접 넣으면entries()와 동일한 동작을 합니다. - 키만 필요하다면
keys(), 값만 필요하다면values()메서드를 사용하는 것이 더 효율적입니다.