Sie könnten mit einem JSON-Array und der sort
Funktion umgehen . Es ist eine ziemlich einfach zu verwaltende Struktur (z. B. Sortieren).
Ungetestet, aber hier ist die Idee. Dies würde eine Mehrfachreihenfolge und eine sequentielle Reihenfolge unterstützen, wenn Sie ein Array übergeben, in dem Sie die Spalten in der Reihenfolge platzieren, in der sie sortiert werden sollen.
var DATA_TABLE = {
{name: 'George', lastname: 'Blarr', age:45},
{name: 'Bob', lastname: 'Arr', age: 20}
};
function sortDataTable(arrayColNames, asc) {
for (var i=0;i<arrayColNames.length;i++) {
var columnName = arrayColNames[i];
DATA_TABLE = DATA_TABLE.sort(function(a,b){
if (asc) {
return (a[columnName] > b[columnName]) ? 1 : -1;
} else {
return (a[columnName] < b[columnName]) ? 1 : -1;
}
});
}
}
function updateHTMLTable() {
}
Stellen wir uns nun vor, Sie müssen nach Nachname, dann nach Name und schließlich nach Alter bestellen.
var orderAsc = true;
sortDataTable(['lastname', 'name', 'age'], orderAsc);
Es sollte zu etwas führen wie:
{name: 'Jack', lastname: 'Ahrl', age: 20},
{name: 'Jack', lastname: 'Ahrl', age: 22},