1. Map 객체
ㅇ 키,값의 쌍(연상 배열)으로 된 데이터 컬렉션을 다루기 위한 객체
- 데이터를 키,값의 쌍으로 보고,
- 타입에 제한을 두지 않고,
- 오로지 데이터 관점으로 만 다룸
ㅇ [자바스크립트] 생성
- new Map(); => Map 객체 반환
2. [자바스크립트] Map 객체의 특징
※ Object 객체 처럼 키 값 쌍으로 구성되나, 이와는 달리,
- 항상 명시적으로 인스턴스를 생성해야 함
. 객체 例) let newObj = {};
. 맵 例) let newMap = new Map();
- 키가 꼭 문자열이 아니라, 어떤 값이어도 상관없음
. 문자형,숫자형,배열,객체,함수도 가능
- size 속성이 있어서, 항상 크기 체크 가능
- 저장되는 순서대로 기억됨
. 객체의 경우, 순서가 보장되지 않음
- 순서대로 반복(순회) 가능
. 반복은, Iterator를 통해 Map 객체 내부를 순환하는 것임
. 내부에 Symbol.iterator가 기본적으로 정의되어있음
. 순회하면서 매 항목별 반환은, 키-값 쌍으로 반환함
- 여러 편리한 메소드들을 제공
3. [자바스크립트] Map 객체의 메소드 및 프로퍼티
ㅇ 메소드
- 설정하기 : set(key,value)
- 가져오기 : get(key)
- 키 존재 확인 : has(key)
- 해당 키 지움 : delete(key)
- 전부 초기화 : clear()
- 반복자(Iterator) 형태로 반환
. entries() : 키 값 쌍으로 묶인 맵 이터레이터를 반환
.. Map Iterator : { [key1,val1],[key2,val2], ... }
. keys() : 키 만을 갖는 맵 이터레이터를 반환
.. Map Iterator : { key1,key2, ... }
. values() : 값 만을 갖는 맵 이터레이터를 반환
.. Map Iterator : { val1,val2, ... }
- forEach(callback)
ㅇ 프로퍼티
- size : 항목들의 현재 개수 (정수 속성)
4. [자바스크립트] Map 객체의 사용 例)
ㅇ 데이터 추가를 위한 간편 방법
- ① let newMap = new Map().set('key1','val1').set('key2','val2');
- ① let newMap = new Map( [ ['key1','val1'], ['key1','val1'] ] );
ㅇ 맵 순회 : 매 원소 마다, 키-값 쌍을 반환함
- for (const [key, value] of newMap) { }
ㅇ 맵을 키-값 쌍의 배열로 만들기 : 펼침 연산자에 의함
- ... newMap ; => ['key1','val1'], ['key1','val1']
- [ ... newMap ]; => [ ['key1','val1'], ['key1','val1'] ]