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!