Set 객체는 ES6에서 등장한 중복을 제거한 값들의 집합이다.
자료형에 관계 없이 원시 값과 객체 참조 모두 유일한 값을 저장할 수 있다.
// 매개변수 있을 경우
const iterable = [
1,
2,
3,
3,
3,
4,
'4',
'안녕',
('이호', '35'),
{ 'a' : 1 },
2,
];
let mySet = new Set(iterable);
// 매개변수 없을 경우
let mySet = new Set();
매개변수에 반복 가능한 객체가 전달된 경우, 그 요소는 모두 새로운 Set에 추가가 된다.
만약 매개변수를 명시하지 않거나 null을 전달하면, 새로운 Set은 비어 있는 상태가 된다.
add는 생성된 Set 객체에 값을 추가한다.
이때 Set객체의 요소들의 자료형이 달라도 문제가 발생하지 않는다.
Set.add(value);
let mySet = new Set();
mySet.add(1); // Set { 1 }
mySet.add(2); // Set { 1, 2 }
mySet.add(2); // Set { 1, 2 }
mySet.add('five'); // Set { 1, 2, 'five' }
has는 인수 value로 지정된 값이 Set 객체 내부에 존재하는지 확인하는 메소드이다. 요소가 있으면 true, 요소가 없으면 false를 반환한다.
has(value);
let mySet = new Set();
mySet.add(1);
mySet.add('five');
mySet.add(3);
mySet.add(false);
console.log(mySet.has(true)); // false
console.log(mySet.has(3)); // true
delete는 인수 value로 지정된 요소만을 삭제한다.
delete(value);
let mySet = new Set(['a', 1, '안녕']);
mySet.delete(1);
console.log(mySet); // Set { 'a', '안녕' }
clear는 Set 객체 내의 모든 요소들을 삭제한다.
clear();
let mySet = new Set(['a', 1, '안녕']);
mySet.clear();
console.log(mySet); // Set {}
size는 Set 객체의 요소의 수를 반환한다.
size;
let mySet = new Set(['a', 1, '안녕', 10]);
console.log(mySet.size); // 4