Вот набор функций, если вы хотите отсортировать по возрастанию, по убыванию или по нескольким столбцам в массиве.
var cmp = function(x, y){ return x > y? 1 : x < y ? -1 : 0; },
arr = [{a:0,b:0},{a:2,b:1},{a:1,b:2},{a:2, b:2}];
// sort on column a ascending
arr.sort(function(x, y){
return cmp( cmp(x.a, y.a), cmp(y.a, x.a) );
});
// sort on column a descending
arr.sort(function(x, y){
return cmp( -cmp(x.a, y.a), -cmp(y.a, x.a) );
});
// sort on columns a ascending and b descending
arr.sort(function(x, y){
return cmp([cmp(x.a, y.a), -cmp(x.b, y.b)], [cmp(y.a, x.a), -cmp(y.b,x.b)]);
});
Чтобы получить сортировку по возрастанию, используйте "cmp (...)"и, чтобы получить сортировку по убыванию, используйте «-cmp (...)»
. Для сортировки по нескольким столбцам сравните два массива cmp (...)
.