-
2-6 Set 소개 및 예시코드 연습JavaScript 문법 종합반 2023. 4. 8. 22:35
Set
고유한 값을 저장하는 자료구조다.
값(밸류)만 저장한다.
키를 저장하지는 않는다.
값이 중복되지 않는 유일한 요소로만 구성된다.
집합을 생각하며 Set을 알아보자.
Set시작
const mySet = new Set();
Set 값 추가
mySet.add('Value1');
mySet.add('Value2');
Set 크기 확인
conesole.log(mySet.size);
터미널 결과: 2
만약 같은 값을 또 추가하고 크기를 확인한다면
mySet.add('Value1');
mySet.add('Value2');
mySet.add('Value2');
conesole.log(mySet.size);
터미널 결과:2
같은 값은 중복으로 인식하므로 Set의 size에는 변화가 없다.
어떤 값이 존재하는지 확인
console.log(mySet.has("value1"));
console.log(mySet.has("value2"));
console.log(mySet.has("value3"));
터미널 결과:
true
true
false없던 값 value3에 대해서는 false를 내어준다.
Iterator (반복자) 로 반복시키기
mySet.add('Value1');
mySet.add('Value2');
mySet.add('Value3');
mySet.add('Value5');
mySet.add('Value8');
for(const value of mySet.values) {
console.log(value)
}
터미널 결과:
Value1
Value2
Value3
Value5
Value8
*mdn web docs에서 Set에 대한 자세한 설명을 볼 수 있다.
Set으로 교집합과 차집합을 흉내낼 수 있다. filter를 이용
Set 교집합 흉내
var intersection = new Set([...set1].filter(x => set2.has(x)));
Set 합집합 흉내
var difference = new Set([...set1].filter(x => !set2.has(x)));배운점
Set은 집합과 같은 개념.
Map처럼 Iterator (반복자)속성을 가지지만 Set은 값(밸류)만 다룬다는 점에서 차이가 있다.
때문에 Set은 값 추가, 값 검색, 값 삭제, 모든 값 제거, 존재 여부 확인 등 모두 값에 대해서만 다룬다는 것을 알 수 있다.
Set은 value의 집합안에서 같은 값이 있다면 중복으로 인식해버린다. 개별적으로 두지 않는다.
Map과 마찬가지로 Set의 값을 찾아보기로 할 때, has를 사용하며 결과는 불으로 나타낸다.
'JavaScript 문법 종합반' 카테고리의 다른 글
2주차 숙제 문자열 내 마음대로 정렬하기 (0) 2023.04.10 WIL Javascript문법종합반 1주 (0) 2023.04.09 2-5 Map 소개 및 예시코드 연습 (0) 2023.04.08 2-3 일급 객체로서의 함수 1 (0) 2023.04.08 2-2 ES6 문법 소개 및 실습 2 (0) 2023.04.08