set 객체

JBoB·2023년 1월 29일
0

Set 객체

Set 객체는 유일한 값을 저장하는 값 콜렉션이다. Set 객체는 중복 값을 허용하지 않는다. Set 객체 내의 값은 한 번만 나타날 수 있기 때문에, Set 콜렉션 내에서 유일하다.

Set 객체는 다음과 같이 생성한다.

const newSet = new Set([1, 2, 2, 4, 3, 10, 5]);

Set 객체는 배열의 형태를 갖는 객체이다. Set는 배열과 비슷해 보이지만 배열은 아니다.

const newSet = new Set([1, 2, 2, 4, 3, 10, 5]);
Array.isArray([]);      // true
Array.isArray(newSet);  // false

Set 객체는 삽입한 요소의 순서대로 순회할 수 있다. Set 객체에는 중복 값을 넣더라도 내부적으로 중복 데이터를 제거하기 때문에 모든 값이 유일하다.

const newSet = new Set([1, 2, 2, 4, 3, 10, 5]);
newSet.forEach(el => console.log(el));

// 출력
// 1
// 2 (2가 중복되지만 중복 값은 제거되었음)
// 4
// 3
// 10
// 5

add() 메서드로 Set에 값을 추가할 수 있다.

const newSet = new Set([1, 2, 2, 4, 3, 10, 5]);
newSet.add(22);
console.log(newSet);

// 출력
/*
Set(7) {
  1,
  2,
  4,
  3,
  10,
  5,
  22,
  __proto__: {...}
}
*/

delete() 메서드로 Set에서 값을 삭제할 수 있다. 삭제 성공 여부를 boolean 값으로 반환한다.

const newSet = new Set([1, 2, 2, 4, 3, 10, 5]);
newSet.delete(2);  // true
newSet.delete(7);  // false

has() 메서드로 Set에서 값을 조회할 수 있다. 조회 성공 여부를 boolean 값으로 반환한다.

const newSet = new Set([1, 2, 2, 4, 3, 10, 5]);
newSet.has(2);  // true
newSet.has(7);  // false

size 프로퍼티로 Set의 크기를 가져올 수 있다.

const newSet = new Set([1, 2, 2, 4, 3, 10, 5]);
newSet.size;  // 6

clear() 메서드로 Set를 리셋할 수 있다.

const newSet = new Set([1, 2, 2, 4, 3, 10, 5]);
newSet.clear();
console.log(newSet);

// 출력
/*
Set(0) {
  __proto__: {...}
}
*/

Set를 Array로 변환하기 위해 스프레드 연산자를 사용할 수 있다.

const newSet = new Set([5, 3, 2, 4, 1]);
const arrFromSet = [...newSet];

console.log(arrFromSet);

// 출력
// [ 5, 3, 2, 4, 1 ]

또는 Array.from() 메서드를 사용할 수도 있다.

const newSet = new Set([5, 3, 2, 4, 1]);
const arrFromSet = Array.from(newSet);

console.log(arrFromSet);

// 출력
// [ 5, 3, 2, 4, 1 ]

출처:
https://velog.io/@cabbage/JS-Set-%EA%B0%9D%EC%B2%B4

profile
간절하고 치열하게 살자

0개의 댓글