1️⃣ Set
- Set 객체는 중복되지 않는 유일한 값들의 집합이다. 배열과 유사하지만 동일한 값을 중복하여 포함할 수 없으며 순서, 인덱스가 없다.
- Set은 수학적 집합을 구현하기 위한 자료구조다. Set 생성자 함수는 이터러블을 인수로 전달받아 Set 객체를 생성한다.
요소 개수 확인 : Set.prototype.size 프로퍼티 사용. size 프로퍼티에 숫자를 할당하여 요소 개수를 변경할 수 없다.
요소 추가 : Set.prototype.add → 새로운 요소가 추가된 Set 객체를 반환하기 때문에 add 메서드를 호출한 후에 add 메서드를 연속적으로 호출할 수 있다.
Set 객체는 객체나 배열과 같이 자바스크립트의 모든 값을 요소로 저장할 수 있다.
요소 존재 여부 확인 : Set.prototype.has
요소 삭제 :Set.prototype.delete → 성공 여부를 나타내는 불리언 값을 반환. 따라서 연속적으로 호출할 수 없음. 인덱스가 아니라 삭제하려는 요소값을 인수로 전달해야 한다.
요소 일괄 삭제 : Set.prototype.clear → 언제나 undefined 반환
요소 순회
- 첫번째 인수 : 현재 순회 중인 요소값
- 두번째 인수 : 현재 순회 중인 요소값(
Array.prototype.forEach메서드와 통일하기 위함) - 세번째 인수 : 현재 순회 중인 Set 객체 자체
Set 객체는 이터러블이다. for…of 문으로 순회할 수 있으며, 스프레드 문법과 배열 디스트럭처링의 대상이 될 수도 있다.
Set 객체는 요소의 순서에 의미를 갖지 않지만 Set 객체를 순회하는 순서는 요소가 추가된 순서를 따른다.
2️⃣ Map
- Map 객체는 키와 값의 쌍으로 이루어진 컬렉션이다.
- 객체와 유사하지만 키로 객체를 포함한 모든 값을 가지며 이터러블이라는 차이가 있다.
- Map 생성자 함수는 이터러블을 인수로 전달받아 Map 객체를 생성한다. 이때 인수로 전달되는 이터러블은 키와 값의 쌍으로 이루어진 요소로 구성되어야 한다.
- Map 객체에는 중복된 키를 갖는 요소가 존재할 수 없다.
요소 개수 확인 : Map.prototype.size
요소 추가 : Map.prototype.set → Map 객체는 키 타입에 제한이 없어서 모든 값을 키로 사용할 수 있다.
요소 취득 : Map.prototype.get
요소 존재 여부 확인 : Map.prototype.has
요소 삭제 : Map.prototype.delete → 삭제 성공 여부를 나타내는 불리언 값 반환
요소 일괄 삭제 : Map.prototype.clear → 언제나 undefined 반환
요소 순회
- 첫번째 인수 : 현재 순회 중인 요소값
- 두번째 인수 : 현재 순회 중인 요소키
- 세번째 인수 : 현재 순회 중인 Map 객체 자체
Map 객체는 이터러블이다. for…of 문으로 순회할 수 있으며, 스프레드 문법과 배열 디스트럭처링의 대상이 될 수도 있다. 동시에 이터레이터인 객체를 반환하는 메서드를 제공한다.
Map.prototype.keys, Map.prototype.values, Map.prototype.entries
'Frontend > JavaScript' 카테고리의 다른 글
| 26. DOM Document Object Model (1) | 2023.12.23 |
|---|---|
| 25. 브라우저의 렌더링 과정 (1) | 2023.12.22 |
| 23. 스프레드 문법과 디스트럭처링 (0) | 2023.12.22 |
| 22. Symbol 과 이터러블 (1) | 2023.12.22 |
| 21. String 문자열 (0) | 2023.12.22 |