Heim >Web-Frontend >js-Tutorial >Wie sortiere ich ein Array mit mehreren Feldern in JavaScript?
Mehrfeld-Array-Sortierung
In einer früheren Frage haben wir die Array-Sortierung basierend auf einem einzelnen Feld untersucht. In realen Szenarien ist jedoch häufig eine Sortierung nach mehreren Kriterien erforderlich. In diesem Artikel wird gezeigt, wie dieser Ansatz für die Mehrfeldsortierung angepasst wird.
Spezifisches Beispiel: Stadt und Preis
Betrachten Sie das folgende Homes-Array, in dem wir nach Stadt sortieren müssen (aufsteigend) und dann Preis (absteigend):
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" } ];
Mehrfeldsortierung Ansatz
Um basierend auf mehreren Feldern zu sortieren, können wir einen verketteten Sortieransatz verwenden, bei dem die Werte der ausgewählten Felder nacheinander verglichen werden, bis wir eins finden Unterschied.
Implementierung
data.sort(function (a, b) { return a.city.localeCompare(b.city) || b.price - a.price; });
Erläuterung
Ausgabe
[ { "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" } ]
Dieser Ansatz bietet eine flexible Lösung zum Sortieren von Arrays nach mehreren Feldern. Es kann leicht an eine beliebige Anzahl von Sortierkriterien angepasst werden, wodurch es für eine Vielzahl von Datenmanipulationsszenarien geeignet ist.
Das obige ist der detaillierte Inhalt vonWie sortiere ich ein Array mit mehreren Feldern in JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!