[javascript] 배열 순회 시 요소 중복 제거하기
자바스크립트에서 배열을 순회하면서 중복된 요소를 제거하는 방법에 대해 알아보겠습니다.
우선 배열을 생성하고 중복된 요소를 포함한 예시를 만들겠습니다.
const array = [1, 2, 3, 4, 5, 6, 4, 2, 1];
배열을 순회하면서 중복된 요소를 확인하고 제거하기 위해서는 filter()
메소드와 indexOf()
메소드를 사용할 수 있습니다. filter()
메소드는 주어진 함수의 테스트를 통과하는 요소를 포함하는 새로운 배열을 생성합니다. indexOf()
메소드는 배열에서 특정 요소가 처음으로 등장하는 인덱스를 반환합니다.
const uniqueArray = array.filter((value, index) => {
return array.indexOf(value) === index;
});
위의 코드에서는 filter()
메소드의 콜백 함수에서 배열에서 현재 요소가 처음으로 등장하는 인덱스와 현재 인덱스를 비교하고, 같으면 중복된 요소가 아니므로 포함시킵니다.
이제 uniqueArray
배열에는 중복된 요소가 제거된 결과가 담겨있습니다.
console.log(uniqueArray); // [1, 2, 3, 4, 5, 6]
이와 같은 방법을 사용하여 배열을 순회하면서 중복된 요소를 제거할 수 있습니다.
위의 방법 외에도 Set
객체를 사용하여 중복된 요소를 제거할 수도 있습니다. Set
객체는 중복된 요소를 허용하지 않는 특징을 가지고 있으므로 중복된 요소를 제거할 때 유용합니다.
const uniqueArray = Array.from(new Set(array));
Set
객체로 변환한 후 Array.from()
메소드를 사용하여 다시 배열로 변환하는 방법입니다.
배열을 순회하면서 중복된 요소를 제거하는 여러 가지 방법을 알아보았습니다. 상황에 맞게 적절한 방법을 선택하여 사용하시면 됩니다.
참고 자료
-
[Array.prototype.filter() - JavaScript MDN](https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/filter) -
[Array.prototype.indexOf() - JavaScript MDN](https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf) -
[Set - JavaScript MDN](https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Set)