Heim  >  Artikel  >  Web-Frontend  >  Wie sortiere ich ein mehrspaltiges Array in JavaScript nach Besitzer und Publikationsname?

Wie sortiere ich ein mehrspaltiges Array in JavaScript nach Besitzer und Publikationsname?

DDD
DDDOriginal
2024-11-01 01:29:28447Durchsuche

How to Sort a Multi-Column Array in JavaScript by Owner and Publication Name?

Benutzerdefinierte mehrspaltige Array-Sortierung in JavaScript

Das Sortieren von Arrays basierend auf mehreren Spalten ist eine häufige Aufgabe in der Programmierung. In dieser Frage wird untersucht, wie dies in JavaScript für eine bestimmte Array-Struktur erreicht werden kann.

Das betreffende Array ist ein mehrdimensionales Array mit der folgenden Struktur:

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

Das Ziel besteht darin, das Array zu sortieren zuerst nach Eigentümername und dann nach Publikationsname.

Um nach mehreren Spalten zu sortieren, muss die benutzerdefinierte Sortierfunktion beide Kriterien berücksichtigen. Der folgende Code zeigt, wie die bereitgestellte mysort-Funktion geändert wird, um das gewünschte Ergebnis zu erzielen:

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

In dieser Funktion:

  • o1 und o2 werden für einen Vergleich ohne Berücksichtigung der Groß- und Kleinschreibung in Kleinbuchstaben umgewandelt von Eigentümername.
  • p1 und p2 werden in Kleinbuchstaben umgewandelt, um den Vergleich von Publikationsname ohne Berücksichtigung der Groß- und Kleinschreibung zu ermöglichen.
  • Wenn die Werte für Eigentümername unterschiedlich sind, sortiert die Funktion basierend auf ihnen.
  • Wenn die Werte für „eigentümername“ identisch sind, verwendet die Funktion den Publikationsnamen für das Tiebreaking.

Das obige ist der detaillierte Inhalt vonWie sortiere ich ein mehrspaltiges Array in JavaScript nach Besitzer und Publikationsname?. 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