내용 목차
오늘은 배열에서 중복을 제거하는 한줄짜리 함수를 만들어 보죠.
![배열 중복제거](https://sp-ao.shortpixel.ai/client/to_auto,q_glossy,ret_img,w_1024,h_430/https://nscworld.net/wp-content/uploads/2022/01/code-1024x430.png)
위의 코드에서 보면 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. []로 감싸서 이용해서 배열로 만듭니다.