Multidimensionale Artrays Sortieren
Knut Meinke
- javascript
Hallo,
Ich finde einfach keine lösung. Wäre schön wenn ihr einen ansatz, tip, bsp code für mich hättet.
Ich habe eine Tabelle in der der user die möglichkeit haben soll nach den verschiedenen spalten zu sortieren.
naja hab ich gedacht nehme ich array.sort() *s*
aber so einfach ist das nicht. damit kann ich zwar eine spalte sortieren die anderen spalten bleiben allerdings in ihrer ursprünglichen reihnfolge, was die datensätze ziemlich durch einander bringt. Die anderen Spalten sollen zusammen mit der spalte nach der sortiert wird
die Reihnfolge wechseln.
Jemand eine Idee?
cu Knut
Vielleicht so:
aus jeder Zeile einen String bilden indem die einzelnen Felder zusammengefügt werden mit dem Sort-bestimmenden-Feld als erstes - diese Strings in ein Array (eindimensional) - dieses sortieren - anschließend die einzelnen Strings wieder zerlegen
Aber vielleicht gibt es ja in JavaScript auch eine entspr. Funktion - kenne ich aber nicht.
Bye
Timothy
Hallo Knut.
Wenn Du Deine Daten sauber strukturierst, sollte sich das Problem von ganz alleine lösen. Du hast Deine Liste mit mehreren Arrays modelliert, eigentlich ist es aber nur _eine_ Liste. Die einzelnen Spalten sind nur verschiedene Eigenschaften eines Objektes. Wenn Du das auch so implementierst, kannst Du mit einem Funktionsaufruf korrekt sortieren. Etwa so:
function Person(Name,Geburtstag,Telefon)
{
this.Name = Name;
this.Geburtstag = Geburtstag;
this.Telefon = Telefon;
}
function nachName(a,b)
{
if(a.Name<b.Name) return -1;
else if(a.Name>b.Name) return 1;
else return 0
}
...
var a = new Array(4);
a[0] = new Person('Hans','21.08.64',8669543);
a[1] = new Person('Peter','02.10.67',4665767);
a[2] = new Person('Detlef','03.04.67',1124356);
a[3] = new Person('Klaus','10.09.66',8878908);
a.sort(nachName);
...
Gruß
Steffen