Heim >Web-Frontend >js-Tutorial >Wie extrahiere ich in JavaScript eindeutige Altersangaben aus einem Array von Objekten?
Stellen Sie sich ein Array von Objekten vor, bei dem jedes Objekt eine Person mit einem Namen und einem Alter darstellt:
var array = [ { "name": "Joe", "age": 17 }, { "name": "Bob", "age": 17 }, { "name": "Carl", "age": 35 } ];
Die Aufgabe besteht darin, unterschiedliche Altersgruppen aus diesem Array zu extrahieren, was zu einem neuen Array mit Unique führt Werte:
[17, 35]
ES6 führt die Set-Datenstruktur ein, die automatisch eine Sammlung eindeutiger Werte verwaltet. Dies kann genutzt werden, um unterschiedliche Altersgruppen effizient zu extrahieren:
const distinctAges = [...new Set(array.map(object => object.age))];
Dieser Ansatz erstellt ein neues Array, das nur die eindeutigen Werte enthält, die in der Alterseigenschaft jedes Objekts im ursprünglichen Array vorhanden sind.
Wenn die Leistung im Vordergrund steht, können Sie alternative Datenstrukturen wie eine Karte oder ein Objekt in Betracht ziehen:
const ageMap = {}; array.forEach(object => { ageMap[object.age] = true; }); const distinctAges = Object.keys(ageMap).map(Number);
In In diesem Szenario werden die Alterswerte als Schlüssel in einem Objekt (Karte) gespeichert. Die Methode Object.keys() ruft die eindeutigen Schlüssel (Alterswerte) als Array ab, das dann mithilfe von „map(Number)“ in numerische Werte konvertiert wird.
Die anfängliche Iterationsmethode Die in der Frage dargestellte Methode kann verbessert werden, indem die Methode Includes() verwendet wird, um nach doppelten Werten zu suchen:
var distinct = []; for (var i = 0; i < array.length; i++) { if (!distinct.includes(array[i].age)) { distinct.push(array[i].age); } }
Diese Optimierung reduziert die Anzahl der erforderlichen Vergleiche, indem sie mehrere Überprüfungen vermeidet doppelte Altersangaben.
Das obige ist der detaillierte Inhalt vonWie extrahiere ich in JavaScript eindeutige Altersangaben aus einem Array von Objekten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!