Axel Richter: Mehrdimensiolales Array sortieren...

Beitrag lesen

Hallo,

Du kennst die Methode Array.sort() und deren Erweiterbarkeit mit einer Sortierfunktion? http://de.selfhtml.org/javascript/objekte/array.htm#sort
Ja die kenne ich ... allerdings hab ich bis jetzt die Sortierfunktion nicht ganz verstanden ... ich weis nur das sie 1,0 oder -1 zurückgeben muss, sonst eigentlich nichts.

Richtig. Den Rest macht die Funktion Array.sort(). Ist der Rückgabewert größer als 0, so bedeutet das, der Parameter a hat einen höheren Index als der Parameter b. In der Sortierreihenfolge kommt damit b vor a. Ist der Rückgabewert kleiner als 0, so bedeutet das, der Parameter a hat einen niedrigeren Index als der Parameter b. In der Sortierreihenfolge kommt damit a vor b. Tritt der Rückgabewert 0 ein, so sind beide Elemente gleich und brauchen in ihrer Reihenfolge nicht verändert werden.

Nach dem beispiel hab ichs glaube ich kapiert... man muss nur eine Sortierfunktion schreiben, die die daten aus dem weiteren array aus liest.

... und vergleicht. Die beiden Argumente a und b der Beispielfunktion nachNachname(a, b) enthalten je ein komplettes Element des Arrays, welches mit .sort(nachNachname) sortiert wird. Wenn dieses Array als Elementinhalt wiederum Arrays enthält, dann enthält a und b auch diese.

wenn cih jetzt bei den sortierfunktionen das < oder > vertausche sortiert er in "die andere richtung" oder?

Ja. Du musst aber _immer_ beide Vergleiche umkehren, also:
aufsteigend:
function nachNachname(a,b) {
  if  (a[0]>b[0]) return 1
  else if (a[0]<b[0]) return -1
  else return 0;
}

abfallend:
function nachNachname(a,b) {
  if  (a[0]<b[0]) return 1
  else if (a[0]>b[0]) return -1
  else return 0;
}

viele Grüße

Axel