Heim > Web-Frontend > js-Tutorial > Wie sortiere ich ein Array von Objekten nach mehreren Feldern?

Wie sortiere ich ein Array von Objekten nach mehreren Feldern?

Susan Sarandon
Freigeben: 2024-12-18 06:32:14
Original
851 Leute haben es durchsucht

How to Sort an Array of Objects by Multiple Fields?

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"}
    ];
Nach dem Login kopieren

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;
});
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage