Mehrfeldsortierung von Objektarrays
In Fällen, in denen eine Sortierung basierend auf mehreren Feldern innerhalb eines Arrays von Objekten erforderlich ist, wird eine verkettete Sortierung verwendet Ansatz eingesetzt werden kann. Bei dieser Methode werden die Werte jedes Felds nacheinander verglichen, bis eine Differenz ungleich Null erhalten wird.
Implementierung
Betrachten Sie das folgende Array von Objekten:
var homes = [ {"h_id":"3", "city":"Dallas", "state":"TX", "zip":"75201", "price":"162500"}, {"h_id":"4", "city":"Bevery Hills", "state":"CA", "zip":"90210", "price":"319250"}, {"h_id":"6", "city":"Dallas", "state":"TX", "zip":"75000", "price":"556699"}, {"h_id":"5", "city":"New York", "state":"NY", "zip":"00010", "price":"962500"} ];
Um dieses Array nach Stadt (aufsteigend) und dann nach Preis (absteigend) zu sortieren, verwenden Sie die folgende Sortierung Funktion:
data.sort(function (a, b) { return a.city.localeCompare(b.city) || b.price - a.price; });
Erklärung
Die Sortierfunktion nimmt einen Callback als Argument, der zwei Objekte a und b vergleicht. Es gibt einen Wert zurück, der die Reihenfolge der Elemente bestimmt:
Beispielausgabe
Nach dem Sortieren wird das Homes-Array wie folgt neu angeordnet :
[{ "h_id": "3", "city": "Dallas", "state": "TX", "zip": "75201", "price": "162500" }, { "h_id": "6", "city": "Dallas", "state": "TX", "zip": "75000", "price": "556699" }, { "h_id": "4", "city": "Bevery Hills", "state": "CA", "zip": "90210", "price": "319250" }, { "h_id": "5", "city": "New York", "state": "NY", "zip": "00010", "price": "962500" }]
Das obige ist der detaillierte Inhalt vonWie kann ich ein Array von Objekten mithilfe mehrerer Felder in JavaScript sortieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!