특징

Map 객체의 생성

Map 객체는 Map 생성자 함수로 생성한다. 인수를 전달하지 않으면 빈 Map 객체가 생성된다.

Map 생성자 함수는 이터러블을 인수로 전달받아 map 인스턴스 객체를 생성한다. 이때 인수로 전달되는 이터러블은 keyvalue 의 쌍으로 이루어진 요소로 구성되야 한다.

const map1 = new Map([['key1', 'value1'], ['key2', 'value2']]);
console.log(map1); *// Map(2) {"key1" => "value1", "key2" => "value2"}*

const map2 = new Map([1, 2]); *// TypeError: Iterator value 1 is not an entry object*

⚠️*증복된 키는 map 인스턴스 객체에 요소로 저장되지 않는다.*

const map = new Map([['key1', 'value1'], ['key1', 'value2']]);
console.log(map); *// Map(1) {"key1" => "value2"}*

요소 개수 확인

*Map.prototype.size 프로퍼티를 사용한다. (set과 비슷)*

<aside> 💡 size 프로퍼티는 setter 함수없이 getter 함수만 존재하는 접근자 프로퍼티다. 그래서 size 프로퍼티에 숫자를 할당하여 map 객체의 요소개수를 변경할수 없다.

</aside>

const map = new Map([['key1', 'value1'], ['key2', 'value2']]);

map.size = 10; *// 무시된다.*
console.log(map.size); *// 2*

요소 추가

Map 인스턴스 객체에 요소를 추가할때는 Map.prototype.set 메서드를 사용한다.