728x90
반응형
Key와 Value가 한 쌍으로 이루어진 자료구조
- 리스트나 배열처럼 순차적으로 해당 요소 값을 구하지 않고 Key를 통하여 Value를 얻는다.
- Value 는 중복될 수 있지만, Key는 고유한 값을 가져야한다.
- Map은 저장 순서를 유지할 필요가 없고, Key를 통하여 Value를 얻어내기 때문에 Key는 중복을 허용하지 않는다.
자바스크립트 Map 객체 생성
const map1 = new Map(); // 방법 1. 비어있는 Map 객체 생성
const mockData = [['key1','value1'],['key2','value2'],['key3','value3']];
const map2 = new Map(mockData); // 방법 2. Map 객체에 초기값 할당하여 생성
console.log(map2)
Map에 값을 저장할 때에는 [key, value] 형식으로 저장하는 것이 일반적
const mockData = [['key1','value1'],['key1','value2'],['key3','value3']];
const map2 = new Map(mockData); // 방법 2. Map 객체에 초기값 할당하여 생성
console.log(map2)
중복된 key 로 값이 할당된다면 마지막에 들어온 키, 값으로 덮어씌워진다.
자바스크립트 특성상 key와 value 둘 다 객체가 될 수 있다.
const mockData = [
['1',{objKey1: 'value1'}],
['2',{objKey2: 'value2'}],
[{objKey3: 'value3'},{objKey3: 'value3'}],
];
const map = new Map(mockData); // 방법 2. Map 객체에 초기값 할당하여 생성
console.log(map)
JavaScript Object VS Map
- Object 키는 String이며, Map의 키는 모든 값을 가질 수 있다.
- Object는 크기를 수동으로 추적해야하지만, Map은 크기를 쉽게 얻을 수 있다.
- Object는 입력 순서에 따라 출력 순서가 보장되지 않지만, Map은 입력 순서가 보장된다.
- Object 에는 prototype이 있어 Map에 기본 키들이 있다.
- Iterator Interface 구현 여부 (Object 없음, Map은 Iterator 존재)
728x90
반응형