자바스크립트 배열의 중복 값을 가진 요소 제거하기

자바스크립트에서는 배열을 사용하여 데이터를 저장하고 조작하는 경우가 많습니다. 하지만 때로는 배열에 중복된 값을 가진 요소가 포함될 수 있습니다. 이러한 중복된 값을 제거하기 위해 여러 가지 방법을 사용할 수 있습니다. 이 글에서는 자바스크립트에서 중복된 값을 가진 요소를 제거하는 방법을 알아보겠습니다.

1. Set 활용

Set은 ES6에서 제공하는 데이터 구조로, 유일한 값을 저장하기 위한 목적으로 사용됩니다. Set을 사용하면 배열에서 중복된 값을 제거할 수 있습니다.

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

Set을 사용하여 중복 요소를 제거한 후에는 spread 연산자(...)를 사용하여 다시 배열로 변환합니다. 그런 다음, uniqueArray를 출력하면 중복이 제거된 배열이 나타납니다.

2. filter() 메서드 활용

filter() 메서드는 주어진 콜백 함수를 통과한 요소들로 이루어진 새로운 배열을 생성합니다. 이를 사용하여 중복 요소를 제거할 수 있습니다.

const array = [1, 1, 2, 3, 3, 4, 5];
const uniqueArray = array.filter((value, index, self) => {
  return self.indexOf(value) === index;
});
console.log(uniqueArray); // [1, 2, 3, 4, 5]

filter() 메서드를 사용하여 중복 요소를 제거한 후에는 비교하는 인덱스를 기준으로 중복을 확인하고, 각 요소가 처음 발견된 위치인 경우에만 true를 반환합니다. 이렇게 반환된 요소들로 이루어진 새로운 배열이 uniqueArray에 저장됩니다.

3. reduce() 메서드 활용

reduce() 메서드를 사용하여 배열을 단일 값으로 축소하는 데 활용할 수도 있습니다. 중복 요소를 제거하기 위해 reduce() 메서드를 사용하는 방법은 다음과 같습니다.

const array = [1, 1, 2, 3, 3, 4, 5];
const uniqueArray = array.reduce((accumulator, value) => {
  if (!accumulator.includes(value)) {
    accumulator.push(value);
  }
  return accumulator;
}, []);
console.log(uniqueArray); // [1, 2, 3, 4, 5]

reduce() 메서드를 사용하여 중복 요소를 제거한 후에는 축소된 배열이 uniqueArray에 저장됩니다. accumulator에 저장된 요소가 현재 요소를 포함하고 있지 않을 경우에만 현재 요소를 accumulator에 추가합니다.

요약

위에서는 자바스크립트에서 배열의 중복 값을 제거하는 세 가지 방법을 소개했습니다. Set, filter() 메서드, reduce() 메서드를 활용하여 배열에서 중복 값을 제거할 수 있으며, 각 방법에는 장단점이 있으니 상황에 맞게 선택하여 사용하시면 됩니다. 중복 값을 제거하여 배열을 최적화하는 것은 데이터 조작의 효율성을 높이는 데 도움이 됩니다.