Array에서 중복 제거

JavaScript 코딩 테스트 문제를 풀다가 한번은 정리하고 넘어가야 할 것 같아서 적어본다.

참고 글: [Javascript] array 중복 제거하는 방법(ES6)

내가 가장 많이 사용하는 방법은 Set을 이용한 방법이다.

const array = [1, 2, 3, 1, 2, 5, 8];
console.log([...new Set(array)]);

이것 외에 위의 글에서 설명하는 방법은 filterreduce를 이용한 방법이다.

const array = [1, 2, 3, 1, 2, 5, 4, 6];

console.log(array.filter((a, i) => array.indexOf(a) === i));

console.log(
  array.reduce<number[]>((acc, a) => (acc.includes(a) ? acc : [...acc, a]), [])
);

직접 테스트 해보지는 않았지만 for loop이나 object를 이용하여 중복을 제거하는 것보다 filter가 빠르다고 한다.

Set은 브라우저 별로 다를 수 있다고 하니 앞으로는 filter를 쓰도록 하자.


Written by@[Suho]
뭐든지 만들어보자.