So sortieren Sie ein Array von Objekten nach mehreren Feldern
Das Sortieren eines Arrays von Objekten nach mehreren Feldern kann durch Verketten mehrerer Vergleichsfunktionen erreicht werden .
Beispiel
Betrachten Sie das folgende Array von Objekten Häuser darstellen:
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 den folgenden Ansatz:
homes.sort(function (a, b) { // Compare city fields var cityDelta = a.city.localeCompare(b.city); if (cityDelta !== 0) { // If cities differ, return comparison result return cityDelta; } // If cities are the same, compare prices in descending order return b.price - a.price; });
Allgemeiner Ansatz
Dieser Ansatz kann auf beliebig viele Sortierfelder verallgemeinert werden. Durchlaufen Sie die gewünschten Sortierfelder in der gewünschten Reihenfolge und vergleichen Sie die Werte für jedes Feld. Wenn ein Delta ungleich Null gefunden wird, wird das Ergebnis zurückgegeben. Andernfalls fahren Sie mit dem nächsten Feld fort.
Das obige ist der detaillierte Inhalt vonWie sortiere ich ein Array von Objekten nach mehreren Feldern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!