Daniel Thoma: Tabellen - 3-fach-Sortierung wie in Excel möglich?

Beitrag lesen

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