Javascript & PHP: Wie sortiere ich ein ArrayListe?

1 Antwort

Guten Abend,

Ich habe mich kurzerhand mal für die Implementierung in JavaScript entschieden, da ich PHP kaum noch verwende und auf meinem System nicht installiert habe. Der Algorithmus ist im Grunde aber derselbe. Das von Dir vorgegebene Array habe ich etwas abgeändert, um die Ausgabe nachvollziehbarer zu machen.

JavaScript-Algorithmus:

const scores = [['max', 2], ['moritz', 3], ['tim', 1]];

const sortedScores = scores.sort((a, b) => a[1] - b[1]);

Die Konstante sortedScores enthält die Scores in aufsteigender Reihenfolge, indem das scores-Array mithilfe der Methode sort entsprechend eines von Dir definierten Sortierkriteriums sortiert wird. Die Callback-Funktion dieser Methode erwartet 2 Parameter, die eine Referenz auf die Elemente (in diesem Falle auf die Arrays) des Arrays scores enthalten. In jedem Durchgang werden also immer paarweise 2 Elemente des Arrays miteinander verglichen, bis die Sortierung abgeschlossen ist. In diesem Fall wird die Differenz der einzelnen Scores verwendet, um diese aufsteigend zu ordnen.

Falls Du dich noch nicht ausgiebig mit JavaScript beschäftigt hast und die Syntax mit Arrow-Functions nicht verstehst, hier das Pendant unter Verwendung gewöhnlicher, anonymer Funktionen:

const scores = [['max', 2], ['moritz', 3], ['tim', 1]];

const sortedScores = scores.sort(function(a, b) {
  return a[1] - b[1];
});

Möchtest du in absteigender Reihenfolge sortieren, vertausche die Operanden bei der Berechnung der Differenz:

return b[1] - a[1];

Die zusätzlich erstellte Konstante sortedScores ist übrigens nicht notwendig, da die Methode sort ohnehin die Reihenfolge der Elemente im Array scores verändert. Diese dient hier nur der besseren Übersichtlichkeit.

MfG