Dieser Artikel befasst sich mit einem häufigen Problem, das bei der Arbeit mit Arrays von Objekten auftritt: dem Entfernen doppelter Einträge. Unser Ziel ist es, ein tiefgreifendes Verständnis der besten Methoden zur Lösung dieser Aufgabe zu vermitteln.
Problemstellung
Betrachten Sie das folgende Objekt:
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"});
Unser Ziel ist es, doppelte Objekte aus obj.arr zu entfernen, sodass es nur eindeutige Elemente enthält.
ES6 Magie
Durch die Nutzung der Leistungsfähigkeit von ES6 können wir eine einzeilige Lösung verwenden:
obj.arr = obj.arr.filter((value, index, self) => index === self.findIndex((t) => ( t.place === value.place && t.name === value.name )) );
Generischer Ansatz
Für a Um eine vielseitigere Lösung zu finden, beachten Sie den folgenden Code:
const uniqueArray = obj.arr.filter((value, index) => { const _value = JSON.stringify(value); return index === obj.arr.findIndex(obj => { return JSON.stringify(obj) === _value; }); });
Property Strategie
Ein alternativer Ansatz besteht darin, die Eigenschaften der Objekte zu vergleichen:
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)) );
Erklärung
Die bereitgestellten Lösungen nutzen Folgendes Konzepte:
Durch die Anwendung dieser Strategien können wir doppelte Objekte effektiv aus einem Array entfernen, Stellen Sie sicher, dass jedes Element einzigartig ist.
Das obige ist der detaillierte Inhalt vonWie kann ich doppelte Objekte effizient aus einem Array in JavaScript entfernen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!