본문 바로가기

프로그래밍 언어/자바스크립트

JavaScript Set, 중복 없는 데이터 관리와 활용법

JavaScript Set, 중복 없는 데이터 관리와 활용법

JavaScript의 Set 객체는 고유한 값으로만 이루어진 데이터 컬렉션을 생성할 때 유용한 도구입니다. 중복을 허용하지 않으며, 다양한 메서드를 통해 손쉽게 데이터를 추가, 삭제, 탐색할 수 있습니다. 이 가이드는 Set 객체의 특성과 기본 사용법, 그리고 주요 메서드와 활용법을 깊이 있게 다루어, JavaScript에서 효율적으로 데이터를 관리할 수 있도록 안내합니다.

 

 

목차

  1. Set 객체의 기본 개념
  2. Set 생성 및 초기화 방법
  3. Set의 주요 특징
  4. Set의 기본 메서드 사용법
  5. Set의 활용 사례
  6. Set과 배열의 변환

 

1. Set 객체의 기본 개념

Set 객체는 JavaScript에서 고유한 값들의 집합을 나타내는 데이터 구조입니다. 각 요소는 중복 없이 저장되며, 객체이기 때문에 키와 값이 동일하게 처리됩니다. 즉, Set에 값을 추가할 때 중복 여부를 자동으로 체크하므로 데이터 정제가 필요한 경우 유용하게 사용할 수 있습니다.

 

 

2. Set 생성 및 초기화 방법

Set 객체는 new Set() 구문을 통해 생성할 수 있습니다. 초기화 시 값 목록을 배열이나 다른 이터러블(iterable) 객체로 전달하면 초기값을 설정할 수 있습니다.

예:


const mySet = new Set([1, 2, 3, 3]);  // 3은 한 번만 저장됩니다.
console.log(mySet); // 출력: Set { 1, 2, 3 }
    

Set은 중복 값을 자동으로 제거하므로 위 예제에서는 두 번 나타난 3이 하나만 저장됩니다.

 

 

3. Set의 주요 특징

  • 고유 값 저장: 모든 값이 중복 없이 고유하게 저장됩니다.
  • 삽입 순서 유지: 요소는 삽입된 순서대로 저장되며, 순회할 때도 이 순서를 따릅니다.
  • 효율적 탐색: Set 내에서 요소의 존재 여부를 확인할 때 빠른 성능을 제공합니다.
  • 다양한 데이터 타입 지원: 원시 값과 객체 모두 저장할 수 있습니다.

 

 

4. Set의 기본 메서드 사용법

Set 객체는 데이터를 관리하기 위한 다양한 메서드를 제공합니다.

add(): Set에 새로운 값을 추가합니다.


const mySet = new Set();
mySet.add(5);
console.log(mySet);  // 출력: Set { 5 }
    

has(): 특정 값이 Set에 존재하는지 확인합니다.


console.log(mySet.has(5));  // 출력: true
    

delete(): 특정 값을 Set에서 제거합니다.


mySet.delete(5);
console.log(mySet);  // 출력: Set {}
    

clear(): 모든 값을 제거하여 빈 Set을 만듭니다.


mySet.clear();
console.log(mySet);  // 출력: Set {}
    

 

 

 

 

5. Set의 활용 사례

Set은 중복을 허용하지 않는 데이터 구조이기 때문에, 중복을 제거하거나 고유한 값만 추출할 때 유용합니다. 예를 들어 배열에서 중복 요소를 제거하는 경우 다음과 같이 활용할 수 있습니다.

예:


const numbers = [1, 2, 2, 3, 4, 4];
const uniqueNumbers = [...new Set(numbers)];
console.log(uniqueNumbers); // 출력: [1, 2, 3, 4]
    

이처럼 중복된 데이터를 자동으로 제거할 수 있어 간편하게 고유 값 목록을 만들 수 있습니다.

 

 

6. Set과 배열의 변환

Set은 배열과 상호 변환이 가능하며, 이를 통해 Set의 고유 값 관리 기능을 활용할 수 있습니다.

Set에서 배열로 변환: Array.from() 또는 스프레드 문법을 사용합니다.


const mySet = new Set([1, 2, 3]);
const arrayFromSet = Array.from(mySet);
console.log(arrayFromSet); // 출력: [1, 2, 3]
    

배열에서 Set으로 변환: new Set()에 배열을 전달합니다.


const myArray = [4, 5, 6];
const setFromArray = new Set(myArray);
console.log(setFromArray); // 출력: Set { 4, 5, 6 }
    

이처럼 Set과 배열을 자유롭게 변환할 수 있어 데이터 처리 시 유연하게 사용할 수 있습니다.