Set 객체는 ES6에서 등장한 중복을 제거한 값들의 집합이다.
//new Set([iterable]);
let mySet = new Set();
특정 요소 추가: add
Set 객체에 주어진 값을 갖는 새로운 요소를 추가
//Set.add(value)
mySet.add(1); // Set { 1 }
mySet.add(5); // Set { 1, 5 }
mySet.add('hi'); // Set { 1, 5, 'hi' }
// Set { 1, 5, 'hi' }
//Set.has(value)
mySet.has(1); // true
mySet.has(3); // false
mySet.has('hi'); // true
특정 요소 확인: has
Set 객체에 주어진 값을 갖는 요소가 있는지 확인 (boolean)
특정 요소 제거: delete
Set 객체에서 주어진 값을 갖는 요소를 제거
// Set { 1, 5, 'hi' }
//Set.delete(value)
mySet.delete('hi'); // Set { 1, 5 }
mySet.delete(1); // Set { 5 }
모든 요소 제거: clear
Set 객체에서 모든 요소를 제거
// Set { 1, 5, 'hi' }
//Set.clear()
mySet.clear() // Set { }
요소의 개수 반환: size
Set 객체 내에 있는 요소들의 개수를 반환
// Set { 1, 5, 'hi' }
//Set.size
mySet.size // 3
그런데 set을 만들 때 중복되는 값을 가진 반복자를 넘기면, Set이 알아서 중복되는 값들 중 맨 앞의 값만 남기고 무시합니다.
const foo = new Set([ 1, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 5, 5, 5 ]);
console.log(foo);
// Set { 1, 2, 3, 4, 5 }
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Set