Thorsten F.: Array Sortierproblem

Beitrag lesen

Hi,

habe da mal eine Frage:

Dies Funktion sortiert mir ein Array, wobei das Element, welches ich als erstes ausgegeben haben möchte, das letzte Element ist usw.

Funktion:

function bubblesort(array) {
     for(var i = 0; i < array.length; i++) {
    for(var j = 0; j <= array.length - i - 2; j++) {
      if(array[j].split('|')[1] > array[j+1].split('|')[1]) {
     a = array[j];
     array[j] = array[j+1];
     array[j+1] = a;
      }
      if(array[j].split('|')[1] == array[j+1].split('|')[1]) {
     if(array[j].split('|')[0] > array[j+1].split('|')[0]) {
       a = array[j];
       array[j] = array[j+1];
       array[j+1] = a;
     }
      }
    }
     }
     return array;
   }

Nun zu meinem Problem: Ich habe z.B. folgendes in dem Array, bereits durch diese Funktion sortiert, stehen:

14|12|Hallo,3|3|Tag,8|6|Nein,9|6|Bla

Die Strings die da drinstehen sind eigentlich egal, denn es soll ausschließlich nach den Zahlen sortiert werden. Wenn die Zahlen alle kleiner als 10 sind, dann funktioniert das auch wunderbar, aber sobald die Zahlen größer als 10 sind, dann wird falsch sortiert.

Denn der erste Eintrag in dem Array (14|12|Hallo) sollte eigentlich das letzte Element des Arrays sein. Sortierung: Zuerst soll nach der 2. Zahl sortiert werden, dann nach der ersten. Die erste ist aber nur wichtig, wenn bei 2 Elementen die 2. Zahl gleich ist.

Wie bekomme ich das nun hin, dass auch Einträge mit Zahlen>9 richtig sortiert werden?

Grüße,
Thorsten F.