Heim >Web-Frontend >js-Tutorial >Wie kann ich JavaScript-Objekteigenschaften nach ihren Werten sortieren?

Wie kann ich JavaScript-Objekteigenschaften nach ihren Werten sortieren?

Susan Sarandon
Susan SarandonOriginal
2024-12-25 16:09:24367Durchsuche

How Can I Sort JavaScript Object Properties by Their Values?

Sortieren von Objekteigenschaften nach Werten

Das Sortieren der Eigenschaften eines Objekts basierend auf ihren Werten in JavaScript kann durch eine raffinierte Problemumgehung erreicht werden. Anstatt uns auf die umsetzungsabhängige Reihenfolge der Objekteigenschaften zu verlassen, können wir sie in ein Array konvertieren, das Array sortieren und das Objekt neu erstellen.

Um dies zu erreichen, verschieben wir die Objekteigenschaften mithilfe von a in ein Array Schleife:

let sortable = [];
for (var vehicle in maxSpeed) {
    sortable.push([vehicle, maxSpeed[vehicle]]);
}

Sobald wir in Array-Form sind, können wir die Sortierfunktion verwenden, um die Elemente nach Wert zu sortieren:

sortable.sort(function(a, b) {
    return a[1] - b[1];
});

Dies ergibt ein Array in sortierter Reihenfolge:

// [["bike", 60], ["motorbike", 200], ["car", 300],
// ["helicopter", 400], ["airplane", 1000], ["rocket", 28800]]

Aus dem sortierten Array können wir das Objekt unter Beibehaltung der gewünschten Reihenfolge rekonstruieren:

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

Alternativ können wir das Objekt verwenden, wenn ES8 verfügbar ist .entries und Reduce-Methoden, um das Objekt in ein Array umzuwandeln:

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

Dieser Ansatz bleibt aufgrund der Implementierung ein Workaround Macken, und man sollte es vermeiden, sich auf die Reihenfolge der Objekteigenschaften in JavaScript zu verlassen.

Das obige ist der detaillierte Inhalt vonWie kann ich JavaScript-Objekteigenschaften nach ihren Werten sortieren?. 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