Jaeilit

array 중복제거 js 본문

TIL

array 중복제거 js

Jaeilit 2023. 5. 19. 10:07
728x90

arr 에 중복을 제거하는 방법 3가지를 알아보겠습니다.

 

1. ES6 set

MDN 의 설명과 같이 하나의 값만 저장하기 때문에 배열에서 중복값 제거를 쉽게 할 수 있습니다.

 

2. indexof 와 filter 의 활용

간단한 설명

indexOf 는 배열에서 지정한 값의 첫번째 인덱스를 반환합니다.

비슷하게 findIndex 도 존재하는데 findIndex 는 조건에 부합하는 첫번째 인덱스를 반환 합니다.

 

indexOf 를 활용하여 1번의 숫자가 몇번째 인덱스에 존재하는지 확인 후에 배열의 filter loop 안 index 와 부합한지 확인 후 filter 메서드의 특징의 참인 값만 return 받는 로직입니다.

예를들어 중복 값 1은 인덱스 기준 0, 3,4,5,6~~ 이렇게 나열되어있는데

indexOf 는 항상 첫 값만 리턴하기 때문에 0만 리턴 받고 filter 의 idx 의 0번에 1이 있는지 확인 후에

둘의 값이 같으면 1을 리턴하는 방식입니다.

 

3. 객체 활용하기

obj 을 활용하면 중복제거도 쉽게 할수있습니다.

객체는 레퍼런스 타입이기 때문에 배열의 1번째 원시 값의 1을 저장하더라도 다음에 같은 1이 들어오면 그 1의 주소 값을 참조만 바꾸는 특징이 있습니다.

 

설명

obj 객체에 num 들을 key value 형태로 저장합니다. { 1 : "1", 2: "2", ...}

obj 가 원시 값 1을 참조하고 있지 않으면 result 배열에 추가해주면 됩니다.

 

728x90