가끔 중복을 제거해야 하는 상황이나 알고리즘 문제가 있다.
예전이라면 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 |