비교 | 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 }