본문 바로가기

■ 프로그래밍/JavaScript

배열에서 중복 제거하기(Set)

가끔 중복을 제거해야 하는 상황이나 알고리즘 문제가 있다. 

예전이라면 for문 돌려서 찾은 다음에 제거했을 텐데 Set이라는 것을 알게 되었다. 

 

사용법은 무척 간단하다. 

let num = [2, 1, 3, 21, 3, 4, 5, 1, 2];
let uniqueNum = [...new Set(num)]
console.log(uniqueNum) // output: [2, 1, 3, 21, 4, 5]

let str = ['a', 'b', 'c', 'a', 'd']
let uniqueStr = [...new Set(str)]
console.log(uniqueStr) // output: ["a", "b", "c", "d"]

위처럼 Set은 숫자, 문자 배열에서 모두 가능하다.

 

우선 아래의 코드를 살펴보자.

let uniqueNum = [...new Set(num)]

...은 스프레드 연산자(Spread Operator)로 배열의 원소를 가져오는 것이다.

 

만약 ...만 이용해서 새로운 변수에 할당했다면 num과 같은 것을 가진 uniqueNum이 나온다.

let num = [2, 1, 3, 21, 3, 4, 5, 1, 2];
let uniqueNum = [...num]
console.log(uniqueNum) // output: [2, 1, 3, 21, 3, 4, 5, 1, 2]

 

 

다시 Set으로 돌아오자면, Set은 비순차적으로 저장할 수 있는 순열 구조로 보통 중복을 제거하거나 특정 값을 포함하고 있는지 확인 할 때 사용한다. 

 

배열을 Set으로 변환하기 위해서는 new를 이용하여 정규 Set 생성자를 사용해야 한다. 

 

Set에서 사용할 수 있는 메소드는 이전 글에 써놓았다. (2020/04/15 - 자료 구조(Data Structure) (3) - Set)

 

'■ 프로그래밍 > JavaScript' 카테고리의 다른 글

같은 배열 요소 찾기 (forEach)  (0) 2020.05.18
Object (3) - 접근법  (0) 2020.05.05
재귀(Recursion)  (0) 2020.04.25
Temporal Dead Zone  (0) 2020.04.16
Object (2) - 중첩객체 접근  (0) 2020.03.26