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

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

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-29 20:21:29304Durchsuche

How to Sort a Multidimensional Array by Multiple Columns in JavaScript?

Sortieren eines Arrays nach mehreren Spalten in JavaScript

Das Sortieren eines mehrdimensionalen Arrays basierend auf mehreren Spalten erfordert eine benutzerdefinierte Sortierfunktion. Bei einem primären Array, das aus „publicationIDownderID“ besteht, besteht das Ziel darin, zuerst nach Besitzername und dann nach Publikationsname zu sortieren.

Die vorhandene Sortierfunktion „mysortfunction“ ist auf die Sortierung ausschließlich nach Besitzername beschränkt. Um diese Einschränkung zu beheben, muss die Funktion geändert werden, um sowohl Eigentümername als auch Veröffentlichungsname zu berücksichtigen:

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

Diese geänderte Funktion priorisiert jetzt die Sortierung nach Eigentümername. Wenn die Besitzernamen identisch sind, wird Publikationsname als Tiebreaker für die Sortierung verwendet.

Die aktualisierte „mysortfunction“ kann jetzt in Verbindung mit Array.sort() verwendet werden, um die gewünschte mehrspaltige Sortierung zu erreichen:

<code class="javascript">array.sort(mysortfunction);</code>

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