>웹 프론트엔드 >JS 튜토리얼 >JavaScript의 배열에서 중복 개체를 효율적으로 제거하는 방법은 무엇입니까?

JavaScript의 배열에서 중복 개체를 효율적으로 제거하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-19 06:10:54681검색

How to Efficiently Remove Duplicate Objects from an Array in JavaScript?

배열에서 중복 개체를 제거하는 방법

객체 배열로 작업할 때 중복 항목을 제거해야 하는 경우가 많습니다. ES6 필터 방법은 이 작업에 대한 우아한 솔루션을 제공합니다.

ES6 Magic

obj.arr = obj.arr.filter((value, index, self ) =>
인덱스 === self.findIndex((t) => (

t.place === value.place && t.name === value.name

))
)

이 코드는 배열의 각 요소를 모든 후속 요소와 비교합니다. 중복 항목이 발견되면 필터링됩니다.

일반 솔루션

보다 일반적인 접근 방식:

const UniqueArray = obj. arr.filter((값, 인덱스) => {
const _value = JSON.stringify(값);
반환 인덱스 === obj.arr.findIndex(obj => {

return JSON.stringify(obj) === _value;

});
});

이 전략은 각 개체를 문자열로 직렬화하고 문자열을 비교하여 식별합니다. 중복.

속성 기반 비교

속성 전략 사용:

const getUniqueItemsByProperties = (items, propNames) =>
items.filter((item, index, array) =>

index === array.findIndex(foundItem => isPropValuesEqual(foundItem, item, propNames))

);

이 접근 방식은 고유성이 결정되는 속성을 지정하는 유연성을 제공합니다. .

래핑된 속성 전략

배열 및 단일 속성 이름을 모두 허용하려면:

const getUniqueItemsByProperties = (items, propNames) => {
const propNamesArray = Array.from(propNames);

return items.filter((item, index, array) =>

index === array.findIndex(foundItem => isPropValuesEqual(foundItem, item, propNamesArray))

);
};

설명

여기서 핵심 아이디어는 중복을 식별하는 필터 방법. 고유성 기준은 개체 속성이나 직렬화 전략을 기반으로 사용자 정의할 수 있는 비교 논리에 의해 결정됩니다.

위 내용은 JavaScript의 배열에서 중복 개체를 효율적으로 제거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.