sortBy method
Returns a new Datacat sorted by the given column.
Implementation
Datacat sortBy(String columnName, {bool ascending = true}) {
int index = columns.indexOf(columnName);
if (index == -1) throw ArgumentError('Column "$columnName" not found.');
List<List<dynamic>> sortedRows = List.from(rows);
sortedRows.sort((a, b) {
var aVal = a[index];
var bVal = b[index];
int cmp;
if (aVal is Comparable && bVal is Comparable) {
cmp = aVal.compareTo(bVal);
} else {
cmp = aVal.toString().compareTo(bVal.toString());
}
return ascending ? cmp : -cmp;
});
return Datacat(columns: List.from(columns), rows: sortedRows);
}