
| 비교 | Object | Map |
|---|---|---|
| Key | 문자열 또는 기호 | 객체와 함수를 포함한 모든 데이터 유형 |
| Size | 프로퍼티의 수 | key-value 쌍의 수 |
| Iteration | 반복 순서를 보장하지 않음 | 요소가 추가된 순서로 반복할 수 있음for…of 구문 또는 forEach 메서드 사용 가능 |
| Performance | 단순한 key-value 맵핑에 적합 | key-value 쌍을 자주 추가/삭제 할 때 적합 |
new Map() – 맵을 만든다.map.set(key, value) – key를 이용해 value를 저장한다.map.get(key) – key에 해당하는 값을 반환한다. key가 존재하지 않으면 undefined를 반환한다.map.has(key) – key가 존재하면 true, 존재하지 않으면 false를 반환한다.map.delete(key) – key에 해당하는 값을 삭제한다.map.clear() – 맵 안의 모든 요소를 제거한다.map.size – 요소의 개수를 반환한다.각 요소가 [key, value]인 배열을 맵으로 바꿀 수 있다.
let map = new Map([
['1', 'str1'],
[1, 'num1'],
[true, 'bool1']
]);
각 요소가 [key, value]인 배열을 객체로 바꿀 수 있다.
let prices = Object.fromEntries(map.entries());
// let prices = Object.fromEntries(map); // .entries()를 생략 가능
// now prices = { banana: 1, orange: 2, meat: 4 }