자바스크립트 Set

citron03·2022년 7월 5일
0

html, css, js

목록 보기
31/43
  • 종종 알고리즘 문제를 풀다보면, Set을 사용할 때가 있다.
  • 다만, Set은 기존의 배열과 사용되는 메서드가 다르기에 헷갈리지 않도록 글을 남기기로 했다.

💐 Set 특징

  • Set은 배열같아 보이지만, 배열이 아니다.

  • Set의 원소들은 모두 유일하다. (중복이 없다)

  • 원소를 삽입한 순서대로 요소를 순회할 수 있다.

  • NaN과 undefined도 저장할 수 있다.

🍷 Set의 메서드

  • Set 생성자
const dataSet = new Set();
  • 존재하는 배열을 초기값으로 하여 Set 생성하기
const arr = [1, 'g', 4, 6];
const dataSet = new Set(arr);
  • Set의 원소 개수(크기)
const size = dataSet.size;
  • Set에 새로운 요소 추가하기
dataSet.add(1);
  • Set에서 요소 삭제하기
dataSet.delete(1); // true(성공) or false(실패)가 리턴된다.
  • Set 완전 비우기
dataSet.clear();
  • Set이 특정 요소를 가지는지 확인하기
dataSet.has(1); // true or false
  • Set 순회하기 (삽입된 순서대로 접근된다)
const arr = [1, 'g', 4, 6];
const dataSet = new Set(arr);
for(let i of dataSet) {
	console.log("set의 요소 :", i);
}
  • Set을 배열로 만들기 (전개 연산자 또는 Array.from 메서드)
const dataSet = new Set();
dataSet.add(1);
dataSet.add('a');
dataSet.add(1010);
dataSet.delete(1);
console.log(Array.isArray(dataSet));
// false

const arr = Array.from(dataSet);
console.log(Array.isArray(arr), arr);
// true ['a', 1010]

const arr2 = [...dataSet];
console.log(Array.isArray(arr2), arr2);
// true ['a', 1010]

참고 자료 : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Set

profile
🙌🙌🙌🙌

0개의 댓글