셋(Set)은 중복을 허용하지 않는 값을 모은 컬렉션입니다.
아래 예제 코드를 보면서 셋에 대해 알아보도록 합시다.
let set = new Set(); //set을 선언해 줍니다. ( ) 안에 iterable 객체를 넣어 Set 객체의 초기 값을 설정해줄 수 있습니다.
let john = 'John';
let peter = 'Peter';
let mary = 'Mary';
set.add(john); //set에 요소를 추가해줍니다.
set.add(mary);
set.add(peter);
set.add(john);
set.add(mary);
console.log(set);
set.delete(john); //set에서 특정 요소를 삭제해줍니다.
console.log(set);
console.log(set.has(mary)); //set 내에서 값이 존재하는지를 판단합니다
console.log(set.size); //set의 크기를 반환합니다
set.clear(); //set을 초기화합니다.
console.log(set);
Set도 Map과 마찬가지로 key, value, key-value 쌍만을 모아볼 수 있는 메서드가 있습니다.
set.keys() // 셋 내의 모든 키들을 반환합니다.
set.values() // 셋 내의 모든 값들을 반환합니다.
set.entries() // 셋 내의 모든 키-값 쌍들을 반환합니다.
예제 코드로 살펴보면 다음과 같습니다.
let set = new Set(); //set을 선언해 줍니다. ( ) 안에 iterable 객체를 넣어 Set 객체의 초기 값을 설정해줄 수 있습니다.
let john = 'John';
let peter = 'Peter';
let mary = 'Mary';
set.add(john); //set에 요소를 추가해줍니다.
set.add(mary);
set.add(peter);
set.add(john);
set.add(mary);
console.log(set.keys());
console.log(set.values());
console.log(set.entries());
예제 코드를 작동시켜보니 Set에서는 key 값과 value 값이 동일한 것 같았습니다.
그래서 key 값과 value 값을 나누는 것이 의미가 있는지 하는 의문이 들었습니다.
이 부분에 대해서는 제가 해답을 찾게 된다면 추후에 관련된 내용을 추가하여 올리도록 하겠습니다.
참고
https://ko.javascript.info/map-set
'컴퓨터 언어 > JavaScript' 카테고리의 다른 글
[JavaScript] 위크맵(WeakMap)과 위크셋(WeakSet) (0) | 2021.07.30 |
---|---|
[JavaScript] Object.keys, values, entries (0) | 2021.07.30 |
[JavaScript] 맵(Map) (0) | 2021.07.30 |
[JavaScript] iterable (0) | 2021.07.30 |
[JavaScript] 배열 (0) | 2021.07.29 |