자바스크립트에서는 배열을 사용하여 데이터를 저장하고 조작하는 경우가 많습니다. 하지만 때로는 배열에 중복된 값을 가진 요소가 포함될 수 있습니다. 이러한 중복된 값을 제거하기 위해 여러 가지 방법을 사용할 수 있습니다. 이 글에서는 자바스크립트에서 중복된 값을 가진 요소를 제거하는 방법을 알아보겠습니다.
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() 메서드를 활용하여 배열에서 중복 값을 제거할 수 있으며, 각 방법에는 장단점이 있으니 상황에 맞게 선택하여 사용하시면 됩니다. 중복 값을 제거하여 배열을 최적화하는 것은 데이터 조작의 효율성을 높이는 데 도움이 됩니다.