📙
자바스크립트 정리하기 - Map과 Set
December 31, 2023
🎯 맵
Map
은 키가 있는 데이터를 저장한다는 점에서 객체와 매우 유사하다. 다만, 객체와 다른 점은 키에 다양한 자료형을 허용한다는 점에서 차이가 있다.
맵에는 다음과 같은 주요 메서드와 프로퍼티가 있다.
- 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() : 요소의 개수를 반환한다.
주의해야할 점은 map[key]는 Map을 사용하는 올바른 방법이 아니다. 이 방법은 map을 일반 객체처럼 취급하게 된다. 따라서 여러 제약이 생기게 된다. map을 사용할 땐 map 전용 메서드 set, get 등을 사용해야만 한다.
💎 맵의 요소에 반복 작업하기
- map.keys() : 각 요소의 키를 모은 반복 가능한 객체를 반환한다.
- map.values() : 각 요소의 값을 모은 이터러블 객체를 반환한다.
- map.entries() : 요소의 [키, 값] 을 한 쌍으로 하는 이터러블 객체를 반환한다. 이 이터러블 객체는 for…of 반복문의 기초로 쓰인다.
맵은 값이 삽입된 순서대로 순회를 실시한다. 객체가 프로퍼티 순서를 기억하지 못하는 것과는 다르다.
💎 Object.fromEntries: 맵을 객체로 바꾸기
Object.fromEntries
를 사용하면 맵을 객체로 바꿀 수 있다.
let obj = Object.fromEntries(map.entries());
🎯 셋
Set은 중복을 허용하지 않는 값을 모아놓은 특별한 컬렉션이다. 셋에 키가 없는 값이 저장된다.
- new Set(iterable) : 셋을 만든다. 이터러블 객체를 전달받으면 그 안의 값을 복사해 셋에 넣어준다.
- set.add(value) : 값을 추가하고 셋 자신을 반환한다.
- set.delete(value) : 값을 제거한다. 호출 시점 내에 값이 있어서 제거에 성공하면 true를, 아니면 false를 반환한다.
- set.has(value) : 셋 내에 값이 존재하면 true, 아니면 false를 반환한다.
- set.cleat() : 셋을 비운다.
- set.size() : 셋에 몇 개의 값이 있는지 세준다.