sortBy method
Sort by the specified field name.
The ascending/descending order is specified by the isAsc
parameter.
Implementation
void sortBy(List<String> names, [List<bool>? isAsc]){
sort(
(a, b){
int result = 0;
for(int i = 0; i < names.length; i++){
String name = names[i];
bool asc = isAsc == null ? true : isAsc[i];
Object? aVal = a[name];
Object? bVal = b[name];
if(aVal == null && bVal != null){
result = asc ? -1 : 1;
break;
}
if(aVal != null && bVal == null){
result = asc ? 1 : -1;
break;
}
if(aVal == null && bVal == null){
continue;
}
if(aVal is Comparable){
result = aVal.compareTo(bVal);
if(!asc){
result = -result;
}
if(result != 0){
break;
}
}
}
return result;
}
);
}