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

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

Patricia Arquette
풀어 주다: 2024-12-19 06:10:54
원래의
671명이 탐색했습니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿