데이터의 구성, 검색, 사용을 (기존의 객체 or 배열보다) 효율적으로 처리
key / value
key에 어떤 데이터 타입도 다 들어올 수 있음
Map은 키가 정렬된 순서로 저장됨
생성
const myMap = new Map();
추가
set()
메서드 사용myMap.set('key', 'value');
검색
get()
메서드 사용console.log(myMap.get('key')); // 'value' 출력
keys(), values(), entries()
메소드를 사용하여 키, 값 및 키-값 쌍을 반복할 수 있음
for .. of
반복문은 ES6에 추가된 새로운 컬렉션 전용 반복 구문, 이를 사용하기 위해선 컬렉션 객체가[Symbol.iterator]
속성을 가지고 있어야 함- iterator : 반복자라는 말로 요소 하나하나 반복할 수 있도록 배열 또는 객체와 비슷한 형태로 열거되어 있는 자료구조
(myMap.keys()로 쓸 수 있는 이유는 myMap.key()가 반환하는 값이 iterator이기 때문)var iterable = [10, 20, 30]; for (var value of iterable) { console.log(value);// 10, 20, 30 }
const myMap = new Map(); myMap.set('one', 1); myMap.set('two', 2); myMap.set('three', 3); for (const key of myMap.keys()) { console.log(key); // one two three } for (const value of myMap.values()) { console.log(value); // 1 2 3 } for (const entry of myMap.entries()) { console.log(`${entry[0]}: ${entry[1]}`); // one: 1 two: 2 three: 3 }
존재여부
has()
메서드 사용console.log(myMap.has('two')); // true
크기
size()
메서드 사용console.log(myMap.size); // 3