Heim >Web-Frontend >js-Tutorial >Wie extrahiere ich in JavaScript eindeutige Altersangaben aus einem Array von Objekten?

Wie extrahiere ich in JavaScript eindeutige Altersangaben aus einem Array von Objekten?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-22 01:56:12343Durchsuche

How to Extract Unique Ages from an Array of Objects in JavaScript?

Eindeutige Werte aus einem Array von Objekten in JavaScript extrahieren

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]

JavaScript-spezifische Lösung (ES6 und höher)

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.

Alternative Datenstrukturen

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.

Verbesserte Methode

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn