Heim >Web-Frontend >js-Tutorial >Wie extrahiere ich eindeutige Eigenschaftswerte effizient aus einem Array von JavaScript-Objekten?
Anhand eines Arrays von Objekten besteht die Aufgabe darin, ein neues Array zu extrahieren, das nur die eindeutigen Werte eines bestimmten Objekts enthält Eigentum. Betrachten Sie zum Beispiel das folgende Array:
var array = [ { "name": "Joe", "age": 17 }, { "name": "Bob", "age": 17 }, { "name": "Carl", "age": 35 } ]
Das Ziel besteht darin, ein Array zu erhalten, das die verschiedenen Altersgruppen aus diesem Array enthält, was zu Folgendem führt:
[17, 35]
Iterative Lösung
Ein einfacher Ansatz besteht darin, die Objekte im Array zu durchlaufen und zu prüfen, ob das Alter jedes Objekts im Ergebnisarray vorhanden ist. Wenn nicht, wird das Alter zum Ergebnisarray hinzugefügt. Obwohl dieser Ansatz funktionsfähig ist, ist er ineffizient, da er auf mehreren Iterationen und Vergleichen beruht.
var distinct = [] for (var i = 0; i < array.length; i++) if (array[i].age not in distinct) distinct.push(array[i].age)
Optimierte Lösung mit ES6-Set
Für eine effizientere Handhabung ES6 /ES2015 bietet die Set-Datenstruktur, die die Speicherung eindeutiger Werte ermöglicht. So verwenden Sie es:
const data = [ { "group": 'A', "name": 'SD' }, { "group": 'B', "name": 'FI' }, { "group": 'A', "name": 'MM' }, { "group": 'B', "name": 'CO'} ]; const unique = [...new Set(data.map(item => item.group))]; // [ 'A', 'B']
Indem wir das Array von Objekten einem Array ihrer gewünschten Eigenschaftswerte zuordnen und daraus ein Set erstellen, eliminieren wir doppelte Werte. Anschließend führt die Rückkonvertierung des Sets in ein Array mit dem Spread-Operator (...) zum gewünschten Ergebnis.
Das obige ist der detaillierte Inhalt vonWie extrahiere ich eindeutige Eigenschaftswerte effizient aus einem Array von JavaScript-Objekten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!