Beim Arbeiten mit einem Array von Objekten ist es oft notwendig, Duplikate zu entfernen. Die ES6-Filtermethode bietet eine elegante Lösung für diese Aufgabe.
obj.arr = obj.arr.filter((value, index, self ) =>
index === self.findIndex((t) => (
t.place === value.place && t.name === value.name
))
)
Dieser Code vergleicht jedes Element im Array mit allen nachfolgenden Elementen. Wenn ein Duplikat gefunden wird, wird es herausgefiltert.
Für einen allgemeineren Ansatz:
const uniqueArray = obj. arr.filter((value, index) => {
const _value = JSON.stringify(value);
return index === obj.arr.findIndex(obj => {
return JSON.stringify(obj) === _value;
});
});
Diese Strategie serialisiert jedes Objekt in eine Zeichenfolge und vergleicht die Zeichenfolgen zur Identifizierung Duplikate.
Verwenden der Eigenschaftsstrategie:
const getUniqueItemsByProperties = (items, propNames) =>
items.filter((item, index, array) =>
index === array.findIndex(foundItem => isPropValuesEqual(foundItem, item, propNames))
);
Dieser Ansatz bietet Flexibilität bei der Angabe der Eigenschaften, anhand derer die Eindeutigkeit bestimmt wird .
Zu ermöglichen für Array- und einzelne Eigenschaftsnamen:
const getUniqueItemsByProperties = (items, propNames) => {
const propNamesArray = Array.from(propNames);
return items.filter((item, index, array) =>
index === array.findIndex(foundItem => isPropValuesEqual(foundItem, item, propNamesArray))
);
};
Die Schlüsselidee hier ist die Verwendung die Filtermethode zur Identifizierung von Duplikaten. Das Einzigartigkeitskriterium wird durch die Vergleichslogik bestimmt, die basierend auf den Objekteigenschaften oder einer Serialisierungsstrategie angepasst werden kann.
Das obige ist der detaillierte Inhalt vonWie entferne ich effizient doppelte Objekte aus einem Array in JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!