코드에 현실 세계를 반영하기 위해서 다양한 자료구조들이 있지만 기존의 것들 만으로는 부족하기 때문에 Map, Set이 추가되었다. 이 Map과 Set은 기존의 자료구조와 비슷한 점이 있으면서도 다른 점이 있다. 기존에 사용하던 객체와 배열로는 구현하기 어려웠던 특정한 기능들 또한 제공한다.
Set
Set은 중복이 없는 값들의 집합이라고 볼 수 있다. 모든 유형의 고유한 값을 저장할 때 사용한다. Set은 배열과 유사하게 순서를 가지지만 서로 인덱스가 달라 동일한 값을 여러 번 저장할 수 있지만 Set은 중복된 값을 허용하지 않는다.
1. 특징
- 각각의 값들은 Set 내에서 한 번만 나타날 수 있다. 즉 유일한 값이다.
- 데이터의 삽입 순서를 가지고 있다.
- NaN을 포함한 모든 데이터를 저장할 수 있다.
2. Set 생성하기
const mySet = new Set();
Set( ) 생성자를 통해 Set을 생성하고 반드시 new 키워드가 있어야 한다. new 키워드가 없다면 타입 에러가 발생한다.
3. Set 데이터 추가하기
const mySet = new Set();
mySet.add(1)
mySet.add('two')
mySet.add(3)
console.log(mySet)
// Set(3) {1, 'two', 3} 출력
Set( ) 생성자를 통해 Set을 생성하고 add( ) 메서드를 통해 값을 추가할 수 있다. 중복된 값은 허용하지 않고 add( ) 메서드는 데이터를 추가하고 Set을 반환하기 때문에 메소드 체이닝의 형태로 작성할 수 있다.
4. Set 데이터 삭제하기
const mySet = new Set([1, 'two', 3]);
mySet.delete(1) // true
mySet.delete(4) //false
delete( ) 메서드를 통해 Set 데이터를 삭제할 수 있다. 값이 존재해서 삭제에 성공했다면 ture를 값이 없어서 삭제에 실패했다면 false를 반환한다.
5. 그 외 다양한 메서드
const mySet = new Set([1, 'two', 3]);
console.log(mySet.has(1)) // true
console.log(mySet.size) // 요소의 크기 확인 3출력
console.log(mySet.clear()) // 모든 요소를 삭제
- has(값) : 메서드를 통해 특정한 값이 들어있는지 확인한다. 값이 있다면 true 없다면 false를 반환한다.
- size : 속성을 통해 요소의 크기를 확인한다.
- clear( ) : 메서드를 통해 모든 요소를 삭제한다.
6. Set의 반복작업
const mySet = new Set([1, 'two', 3]);
console.log(mySet.values()) // MapIterator {'one', 'two', 'three'}
for(const values of mySet) {
console.log(values)
}
Set은 Map과 마찬가지로 자체적으로 iterable 하기 때문에 반복이 가능하다. 반복작업에 수행되는 메서드는 values( )로 요소의 값을 반복할 수 있는 iterable 한 객체를 반환한다. 배열과 같이 forEach( )를 제공하고 있기에 사용할 수 있다.
중복된 값을 허용하지 않기 때문에 유일한 값들의 컬렉션이 필요할 때 주로 사용할 수 있다.
'JavaScript' 카테고리의 다른 글
자바스크립트 함수 호출에 따른 this 와 명시적 바인딩 (0) | 2024.10.14 |
---|---|
자바스크립트 실행 컨텍스트 복습 및 정리하기 (1) | 2024.10.11 |
자바스크립트 자료형 Map 학습 및 정리하기 (0) | 2024.10.10 |
자바스크립트와 객체 지향 프로그래밍 (0) | 2024.10.08 |
JavaScript 변수 선언 var, let, const의 차이와 활용 (0) | 2024.10.04 |
댓글