Tabellen - 3-fach-Sortierung wie in Excel möglich?
ccc
- javascript
0 Daniel Thoma0 ccc
0 JürgenB
Hallo,
kann man mit JavaScript Tabellen auch 3-fach sortieren, wie z.B. in Excel. Dort kann man bis zu drei Spalten auswählen und nach denen wird dann sortiert.
Geht so etwas überhaupt mit JavaScript? Falls ja: Hat vielleicht jemand ein Link zu einem Beispiel?
Hallo ccc,
Die Funktion "Array.sort()" kann man eine Funktion mitgeben, die zwei Elemente vergleicht. Verwendet man nun einen zwei-dimensionalen Array für die Tabelle, so kann man die ersten drei Spalten einfach in dieser Funktion vergleichen:
var array = [[1, "x", 0.4], [2, "a", 3.5]];
array.sort(function(a, b) {
for (var i = 0; i < 3; ++i) {
if (a[i] != b[i]) {
return a[i] < b[i] ? -1 : 1;
}
};
return 0;
});
Statt der for-Schleife ist es natürlich auch möglich, für jede Spalte den Vergleich extra zu implementieren und so die Spalten auf unterschiedliche weise zu vergleichen. Wichtig ist nur, dass man bei gleichen Werten in einer höherrangigen Spalte die nächste Spalte betrachtet.
Grüße
Daniel
Oha... nicht schlecht. Muss ich mir mal durch den Kopf gehen lassen. Vielen Dank für deine Antwort.
Hallo ccc!
Oha... nicht schlecht. Muss ich mir mal durch den Kopf gehen lassen. Vielen Dank für deine Antwort.
Und wenn irgendwas unklar sein sollte, bitte hier noch mal nachfragen. Es ist durchaus möglich und normal, dass Antworten nicht sofort verständlich werden. Schließlich weiß der Antwortende nicht, und kann nicht immer einschätzen, wie weit ein Fragender mit seinem Wissen ist. Also bei Bedarf: Hier im Thread nachhaken, nur keine Angst!
Viele Grüße aus Frankfurt/Main,
Patrick
Hallo ccc,
mein Tabellensortierer sortiert nach einer beliebigen vorgegebenen Spalte und greift bei Gleichheit auf die erste Spalte zurück. Wenn Du die Vergleichsfunktionen (VglFkt_*) anpasst, sollte auch nach mehreren Spalten sortiert werden können.
Gruß, Jürgen