Set
객체는 자료형에 관계 없이 원시 값(string, number, bigint, boolean, undefined, symbol)과 객체 참조 모두 유일한 값을 저장할 수 있다.
const set1 = new set([1, 2, 3, 4, 5]);
console.log(set1.has(1)); // true
consoel.log(set1.has(5)); // true
consoel.log(set1.has(8)); // false
new Set([iterable]);
- iterable
반복 가능한 객체가 전달된 경우, 그 요소는 모두 새로운Set
에 추가된다.
만약 매개변수(여기선iterable
)를 명시하지 않거나null
을 전달하면 새로운Set
은 비어있는 상태가 된다.
Set
객체는 값 콜렉션으로, 삽입 순서대로 요소를 순회할 수 있다.
하나의 Set
내 값은 한 번만 나타날 수 있다. 즉, 어떤 값은 그 Set
콜렉션 내에서 유일하다.
따라서, 배열 속 중복 값을 제거하고 싶을 경우에 사용이 가능하다.
(알고리즘 문제 [프로그래머스 / level2] 위장에 적용 가능하겠다!)
const dupArr = [1, 2, 3, 1, 2];
const set = new Set(dupArr); // 중복 값은 제거되었지만 배열이 아닌 상태이다.
const setNewArr = Array.from(set); // 배열로 변환.
1. Array.from()
const set = new Set([1, 2, 3]);
const arr = Array.from(set);
2. Spread Operator (전개 연산자)
const set = new Set([1, 2, 3]);
const arr = [...set];
3. forEach
const set = new Set([1, 2, 3]);
const arr = [];
set.forEach(ele => {
arr.push(ele);
})