객체 배열로 작업할 때 중복 항목을 제거해야 하는 경우가 많습니다. ES6 필터 방법은 이 작업에 대한 우아한 솔루션을 제공합니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!