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]
배열을 포함하는 이터러블 객체를 반환하며 맵과의 호환성을 위해 만들어졌다.맵과 마찬가지로, 삽입순서를 기억하기 때문에 정렬되어있지 않으며, 재정렬이 불가능하다.