Heim >Web-Frontend >js-Tutorial >Wie sortiere ich JavaScript-Objekte nach Eigenschaftswerten?

Wie sortiere ich JavaScript-Objekte nach Eigenschaftswerten?

Linda Hamilton
Linda HamiltonOriginal
2024-12-29 09:42:11812Durchsuche

How to Sort JavaScript Objects by Property Values?

Sortieren von Objekten nach Eigenschaftswerten

In JavaScript sind Objekte ungeordnete Sammlungen von Schlüssel-Wert-Paaren. Es kann jedoch Situationen geben, in denen wir Objekte nach den Werten ihrer Eigenschaften sortieren müssen. Dies kann erreicht werden, indem das Objekt in ein Array konvertiert, das Array nach Werten sortiert und dann das Objekt aus dem sortierten Array rekonstruiert wird.

Betrachten wir das bereitgestellte Beispiel:

var list = {
  "you": 100, 
  "me": 75, 
  "foo": 116, 
  "bar": 15
};

Zu Sortieren Sie die Eigenschaften der Liste anhand ihrer Werte. Wir können Folgendes tun:

let sortable = [];
for (let property in list) {
    sortable.push([property, list[property]]);
}

sortable.sort((a, b) => a[1] - b[1]);

// [["bar", 15], ["me", 75], ["you", 100], ["foo", 116]]

Dadurch wird ein sortierbares Array erstellt, das Unterarrays von enthält Eigenschafts-Wert-Paare, die dann basierend auf den Werten in aufsteigender Reihenfolge sortiert werden. Jetzt können wir das Objekt in der sortierten Reihenfolge rekonstruieren:

let objSorted = {};
sortable.forEach(item => {
    objSorted[item[0]] = item[1];
});

Dadurch erhalten wir das sortierte Objekt:

objSorted = {
  "bar": 15, 
  "me": 75, 
  "you": 100, 
  "foo": 116
};

In ES8 und höher können wir diesen Prozess mit Object vereinfachen. Einträge():

const maxSpeed = {
  car: 300, 
  bike: 60, 
  motorbike: 200, 
  airplane: 1000,
  helicopter: 400, 
  rocket: 8 * 60 * 60
};

const sortable = Object.entries(maxSpeed)
  .sort(([,a],[,b]) => a-b)
  .reduce((r, [k, v]) => ({ ...r, [k]: v }), {});

console.log(sortable);

Dies gibt das sortierte Array von Eigenschafts-Wert-Paaren als zurück Objekt.

Es ist wichtig zu beachten, dass das Sortieren von Objekten nach Eigenschaftswerten zwar möglich ist, dies jedoch auf einer Implementierungseigenschaft in JavaScript beruht und in Zukunft möglicherweise nicht mehr funktioniert. Es wird empfohlen, keine Annahmen über die Reihenfolge von Elementen in JavaScript-Objekten zu treffen.

Das obige ist der detaillierte Inhalt vonWie sortiere ich JavaScript-Objekte nach Eigenschaftswerten?. 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