이 문서에서는 객체 배열을 사용할 때 직면하는 일반적인 문제인 중복 항목 제거에 대해 자세히 설명합니다. 우리의 목표는 이 작업을 달성하기 위한 최선의 방법에 대한 심층적인 이해를 제공하는 것입니다.
문제 설명
다음 개체를 고려하십시오.
obj = {}; obj.arr = new Array(); obj.arr.push({place: "here", name: "stuff"}); obj.arr.push({place: "there", name: "morestuff"}); obj.arr.push({place: "there", name: "morestuff"});
우리의 목표는 obj.arr에서 중복된 개체를 제거하여 고유한 개체만 포함하는 것입니다. elements.
ES6 Magic
ES6의 강력한 기능을 활용하여 다음과 같은 단일 라이너 솔루션을 사용할 수 있습니다.
obj.arr = obj.arr.filter((value, index, self) => index === self.findIndex((t) => ( t.place === value.place && t.name === value.name )) );
일반 접근 방식
보다 다양한 솔루션을 얻으려면 다음을 고려하세요. 코드:
const uniqueArray = obj.arr.filter((value, index) => { const _value = JSON.stringify(value); return index === obj.arr.findIndex(obj => { return JSON.stringify(obj) === _value; }); });
속성 전략
대체 접근 방식은 개체의 속성을 비교하는 것입니다.
const isPropValuesEqual = (subject, target, propNames) => propNames.every(propName => subject[propName] === target[propName]); const getUniqueItemsByProperties = (items, propNames) => items.filter((item, index, array) => index === array.findIndex(foundItem => isPropValuesEqual(foundItem, item, propNames)) );
설명
제공되는 솔루션은 다음을 활용합니다. 개념:
이러한 전략을 사용하면 배열에서 중복 개체를 효과적으로 제거하여 각 요소가 고유하도록 할 수 있습니다.
위 내용은 JavaScript의 배열에서 중복 개체를 효율적으로 제거하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!