Map은 key가 있는 데이터를 저장하는 객체와 유사한 자료구조이다. key,value쌍의 데이터를 저장하며, 객체와 달리 key에 다양한 자료형을 허용한다. 가령 숫자,불린값,객체 등을 자유롭게 key로 사용할 수 있다.
new Map() : 맵을 생성한다.map.set(key,value) : key를 이용하여 value를 저장한다.map.get(key) : key에 해당하는 값을 반환한다. 없을 경우, undefined를 반환한다.map.has(key) : key가 있으면 true, 없으면 false를 반환한다.map.delete(key) : key의 해당 값을 삭제한다.map.clear() : 맵의 모든 요소를 삭제한다.map.size : 요소의 개수를 반환한다.map.keys() – 각 요소의 키를 모은 반복 가능한(iterable, 이터러블) 객체를 반환한다.map.values() – 각 요소의 값을 모은 이터러블 객체를 반환한다.map.entries() – 요소의 [키, 값]을 한 쌍으로 하는 이터러블 객체를 반환한다. 이 이터러블 객체는 for..of반복문의 기초로 쓰인다.Map 은 삽입 순서를 기억한다. 반복문을 사용하는 경우, 삽입된 순서대로 시행된다.
Map은 forEach를 지원한다.
Object.entries(object) 메서드를 통해 객체를 맵으로 바꿀 수 있다. Object.entries()메서드는 [key,value]를 요소로 갖는 배열을 반환한다.
Object.fromEntries(map) 을 통해, 맵을 객체로 바꿀 수 있다.
Set은 중복을 허용하지 않는 값들의 컬렉션이다. key가 없는 값들이 저장된다.
new Set(iterable) – 이터러블 객체를 받아 , 그 값들을 복사하여 셋에 넣어 생성한다.set.add(value) – value를 추가하고, 자기 자신을 반환한다. 때문에 체이닝이 가능하다.set.delete(value) – 값을 제거하고, 호출시점에 값이 있으면 true, 아니면 false를 반환한다.set.has(value) – 셋내의 값이 존재하면 true, 아니면 false 반환한다.set.clear() – 셋을 비운다.set.size – 셋에 몇개의 값이 있는지를 반환한다.set.keys() – 셋 내의 모든 값을 포함하는 이터러블 객체를 반환한다.set.values() – set.keys와 동일한 작업을 하며, 맵과의 호환성을 위해 만들어진 메서드이다.set.entries() – 셋 내의 각 값을 이용해 만든 [value, value] 배열을 포함하는 이터러블 객체를 반환하며 맵과의 호환성을 위해 만들어졌다.맵과 마찬가지로, 삽입순서를 기억하기 때문에 정렬되어있지 않으며, 재정렬이 불가능하다.