특징

이러한 set 객체는 수학적 집합을 구현하기 위한 자료구조이다. 그래서 set을 통해 교집합, 합집합, 차집합, 여집합 등을 구현할 수 있다.

Set 객체의 생성

Set 객체는 Set 생성자 함수로 생성한다. 인수를 전달하지 않으면 빈 Set 객체가 생성된다.

Set 생성자 함수는 이터러블 을 인수로 받아 Set 객체를 생성한다. 이때 이터러블의 중복된 값은 아래의 예시처럼 Set 객체에 요소로 저장되지 않는다.

const set = new Set();
console.log(set); *// Set(0) {}*

const set1 = new Set([1, 2, 3, 3]);
console.log(set1); *// Set(3) {1, 2, 3}*

const set2 = new Set('hello');
console.log(set2); *// Set(4) {"h", "e", "l", "o"}*

그래서 Set을 사용해서 배열에서 중복된 요소를 제거할 수 있습니다.

*// 배열의 중복 요소 제거*
const uniq = (array) => array.filter((item, idx, arr) => arr.indexOf(item) === idx);
**console.log(uniq([1, 2, 3, 1, 2, 3])); *// [1, 2, 3]

// Set을 이용한 배열의 중복 요소 제거*
const uniq = (array) => [...new Set(array)];
console.log(uniq([1, 2, 3, 1, 2, 3])); *// [1, 2, 3]*

요소 개수 확인

Set 객체의 요소 개수를 확인할 때는 Set.prototype.size 프로퍼티를 사용한다.

<aside> 💡 size 프로퍼티는 setter 함수없이 getter 함수만 존재하는 접근자 프로퍼티다. 그래서 size 프로퍼티에 숫자를 할당하여 Set 객체의 요소개수를 변경할수 없다.

</aside>