Set은 수학적 집합의 개념을 표현할 수 있는 문법이다.
Set은 고유한 값을 저장하는 자료 구조이다. Set은 값만 저장하며, 키를 저장하지 않는다. Set은 값이 중복되지 않는 유일한 요소로만 구성된다. 같은 값을 두 번 넣는다면 저장되지 않는다. Set을 사용하면 다음과 같은 작업을 수행할 수 있다.
- 값 추가 및 값 존재여부 확인
- 값 삭제
- 모든 값 제거
- Set 크기확인
위의 모든 기능들을 정리했고, 교집합 구하는 메소드를 정리해 보았다. 자바스크립트 내장 메소드인 filter()를 사용한다.
// Set 두개를 정의한다.
const setA = new Set([1, 2, 3, 4, 5]);
const setB = new Set([2, 4]);
// setA와 setB의 교집합을 구해 보자.
const a = [...setA].filter((v) => setB.has(v))
console.log(a)
// 교집합을 구하는 프로토타입 메소드를 만들어 보자. 메소드 명칭은 intersection.
Set.prototype.intersection = function(set) {
return new Set([...this].filter(x => set.has(x)));
}
// setA와 setB의 교집합
console.log(setA.intersection(setB)); // Set(2) {2, 4}
// setB와 setA의 교집합
console.log(setB.intersection(setA)); // Set(2) {2, 4}
//값 추가
setA.add('d');
console.log(setA);
//값 존재여부 확인
console.log(setA.has('d'));
// 값 제거
setA.delete('d')
console.log(setA);
// 모든 값 제거
setA.clear()
console.log(setA);
// Set 크기확인
console.log(setA.size);
'자바스크립트 리뷰' 카테고리의 다른 글
메모리: 참조형 데이터는 가변하다. [ JS문법 종합반 3주차 -1] (0) | 2023.04.11 |
---|---|
메모리: 변수와 상수 그리고 불변하다와 불변하지 않다. [ JS문법 종합반 3주차] (0) | 2023.04.11 |
new Map() 완전정리 [JS문법 종합반 2주차 - 3] (0) | 2023.04.10 |
prompt() 메소드 [혼공자 확인문제 2-3-5] (0) | 2023.04.08 |
const로 상수를 만들면 바로 값을 지정해야 한다 [혼공자 확인문제 2-2-3] (0) | 2023.04.08 |