Heim >Web-Frontend >js-Tutorial >Wie kann ich ein Array von Objekten mithilfe mehrerer Felder in JavaScript sortieren?

Wie kann ich ein Array von Objekten mithilfe mehrerer Felder in JavaScript sortieren?

DDD
DDDOriginal
2024-12-25 18:37:10686Durchsuche

How can I sort an array of objects using multiple fields in JavaScript?

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:

  • Wenn a.city.localeCompare(b.city) kleiner als Null ist, wird a vor b platziert.
  • If a.city.localeCompare(b.city) ist größer als Null, b wird vor a platziert.
  • Wenn a.city.localeCompare(b.city) gleich ist auf Null, b.price - a.price wird zum Vergleichen von Preisen verwendet. Ein positiver Wert platziert b vor a und ein negativer Wert platziert a vor b.

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!

Stellungnahme:
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