Heim >Web-Frontend >js-Tutorial >Wie sortiere ich ein Array mit mehreren Feldern in JavaScript?

Wie sortiere ich ein Array mit mehreren Feldern in JavaScript?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-24 02:18:10505Durchsuche

How to Sort a Multi-Field Array 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

  • Die Methode localeCompare wird zum Vergleichen der Stadtwerte verwendet .
  • Wenn die Stadtwerte gleich sind, subtrahieren wir den Preiswert von b von a, um die Preise zu sortieren in absteigender Reihenfolge.
  • Das resultierende Array wird nach Stadt (aufsteigend) und dann nach Preis (absteigend) sortiert.

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!

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