javascript 배열에서 중복 제거하기

오늘은 배열에서 중복을 제거하는 한줄짜리 함수를 만들어 보죠.

배열 중복제거

위의 코드에서 보면 2가지 낯선 코드가 보입니다. ‘…’ 하고 new Set() 입니다.

set 객체

먼저 set 객체에 대해 설명하죠. set 객체는 중복되지 않은 유일한 값을 가지는 객체입니다. 사용 사례를 보는 것이 더 이해하기 쉽습니다.

// set 객체는 new를 이용하여 생성합니다.

const set1 = new Set([5,7,8,8]);
console.log(set1); // Set(3) {5, 7, 8}

const set2 = new Set('hello');
console.log(set2); // Set(4) {"h", "e", "l", "o"}

set는 위의 코드와 같이 고유한 값 만 골라낸 후에 객체{}로 만들어 냅니다.

스프레드 연산자 (…)

점 세개가 찍힌 모양인 스프레드 연산자의 기능 중에 “반복 가능한 객체를 개별 요소로 분리할 수 있는” 기능이 있습니다.

const set1 = new Set([5,7,8,8]);  //set {5,7,8}

const set3 = [set1]  //콘솔로그 찍어보면 [Set {5,7,8}]
const set4 = [...set1]  //콘솔로그 찍어보면 [5,7,8]

const set5 = [...set1, 22, 17, "콩나물"] // [5,7,8,22,17,"콩나물"]

위와 같이 스프레드 연산자를 이용할 수 있습니다.


그래서 결론적으로 위의 중복제거 함수는 아래와 같이 설명할 수 있습니다.

const removeDup = (arr) => [...new Set(arr)]

1. new Set(arr)로 중복된 값을 모두 제거한 {객체}를 만들고,

2. 스프레드 연산자(…)를 사용해서 개별 요소로 분리 시킵니다.

3. []로 감싸서 이용해서 배열로 만듭니다.

답글 남기기

17 − 16 =