Heim  >  Artikel  >  Web-Frontend  >  Wie sortiere ich ein mehrdimensionales JavaScript-Array nach mehreren Spalten?

Wie sortiere ich ein mehrdimensionales JavaScript-Array nach mehreren Spalten?

DDD
DDDOriginal
2024-10-28 23:18:30123Durchsuche

How to Sort a Multidimensional JavaScript Array by Multiple Columns?

Sortieren mehrdimensionaler Arrays nach mehreren Spalten

In JavaScript kann das Sortieren eines Arrays von Zeichenfolgen einfach mit der Funktion Array.sort() erreicht werden . Für mehrdimensionale Arrays oder beim Sortieren nach mehreren Kriterien ist jedoch eine benutzerdefinierte Funktion erforderlich.

Betrachten Sie ein Array mit der folgenden Struktur:

[publicationID][publication_name][ownderID][owner_name]

Das Ziel besteht darin, das Array zu sortieren nach Eigentümername und dann nach Veröffentlichungsname, was dazu führen würde, dass Eigentümer mit demselben Namen gruppiert werden und Veröffentlichungen innerhalb jeder Gruppe alphabetisch sortiert werden.

Zuvor wurde eine benutzerdefinierte Sortierfunktion namens mysortfunction eingeführt, die das Array sortierte basierend auf einer einzelnen Spalte, Eigentümername. Um diese Funktion für die mehrspaltige Sortierung zu erweitern, können folgende Änderungen vorgenommen werden:

<code class="javascript">function mysortfunction(a, b) {

  var o1 = a[3].toLowerCase();
  var o2 = b[3].toLowerCase();

  var p1 = a[1].toLowerCase();
  var p2 = b[1].toLowerCase();

  if (o1 < o2) return -1;
  if (o1 > o2) return 1;
  if (p1 < p2) return -1;
  if (p1 > p2) return 1;
  return 0;
}</code>

In dieser aktualisierten Funktion:

  • o1 und o2 stellen die Besitzernamen in Kleinbuchstaben dar.
  • p1 und p2 stellen die Publikationsnamen in Kleinbuchstaben dar.

Zuerst werden die Eigentümernamen verglichen. Wenn sie unterschiedlich sind, gibt die Funktion -1 oder 1 zurück, um anzugeben, welches vor dem anderen stehen soll.

Wenn die Eigentümernamen jedoch identisch sind, vergleicht die Funktion die Publikationsnamen. In diesem Fall wird -1 oder 1 zurückgegeben, um ihre Reihenfolge anzugeben.

Wenn beide Vergleiche Gleichheit ergeben, gibt die Funktion 0 zurück, was angibt, dass die beiden Elemente gleich sind und ihre ursprüngliche Reihenfolge beibehalten sollten.

Durch Sortieren des Arrays mit dieser benutzerdefinierten Funktion wird das Ziel der Sortierung nach Besitzername und dann nach Publikationsname erreicht. Eigentümer mit demselben Namen werden in Gruppen zusammengefasst, wobei die Veröffentlichungen innerhalb jeder Gruppe alphabetisch aufgelistet werden.

Das obige ist der detaillierte Inhalt vonWie sortiere ich ein mehrdimensionales JavaScript-Array nach mehreren Spalten?. 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