Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript에서 집합(Set)을 생성하는 방법 – 기본 문법부터 실전 예제까지

JavaScript에서 집합(Set)이란?

Set(집합)은 특정 값들을 저장할 수 있는 추상 자료형으로, 순서가 없고 중복된 값을 허용하지 않는다는 특징이 있습니다. 수학에서 말하는 유한 집합(finite set) 개념을 컴퓨터로 구현한 것입니다. 배열이나 리스트와 같은 대부분의 컬렉션과 달리, Set은 특정 요소를 순서대로 꺼내기보다는 주로 특정 값이 집합에 포함되어 있는지(멤버십)를 확인하는 용도로 활용됩니다.

JavaScript에서는 ES6(ECMAScript 2015)부터 내장 Set 객체를 통해 이러한 집합 자료구조를 손쉽게 사용할 수 있습니다.

JavaScript에서 Set을 만드는 방법

1. 빈 Set 생성자 사용하기

new Set()으로 빈 Set 객체를 생성한 뒤, add() 메서드로 값을 하나씩 추가할 수 있습니다. 이미 존재하는 값을 다시 추가해도 무시되므로 항상 고유한 값만 유지됩니다.

let mySet = new Set();
mySet.add(1);
mySet.add(1);
console.log(mySet);

같은 값인 1을 두 번 추가했지만, 출력 결과를 보면 중복 없이 한 번만 저장된 것을 확인할 수 있습니다.

출력

Set { 1 }

2. 생성자에 반복 가능한 객체(iterable) 전달하기

Set 생성자는 반복 가능한 객체(배열, 문자열, 또 다른 Set 등)를 인수로 받아 새로운 Set을 생성합니다. 이 방식을 사용하면 기존 배열에서 중복된 값을 간단히 제거할 수 있다는 장점이 있습니다.

예제

let mySet = new Set([1, 2, 1, 3, "a"]);
mySet.add(1);
mySet.add(1);
console.log(mySet);

배열 [1, 2, 1, 3, "a"]에는 1이 두 번 포함되어 있지만, 결과 Set에는 1이 하나만 남습니다. 문자열 값 'a' 역시 숫자와 다른 타입으로 인식되어 함께 저장됩니다.

출력

Set { 1, 2, 3, 'a' }

보너스: has() 메서드로 값의 존재 여부 확인하기

앞서 설명했듯이 Set은 멤버십 테스트에 매우 효율적입니다. has() 메서드를 사용하면 특정 값이 Set에 존재하는지 빠르게 확인할 수 있습니다.

console.log(mySet.has(1));    // true
console.log(mySet.has("b")); // false

이처럼 JavaScript의 Set은 중복 제거와 값의 존재 여부 검사가 필요한 상황에서 배열보다 훨씬 간결하고 성능 좋은 코드를 작성할 수 있게 해줍니다.