Это решение работает с любым типом данных:
sort_array_by = function(field, reverse, pr){
reverse = (reverse) ? -1 : 1;
return function(a,b){
a = a[field];
b = b[field];
if (typeof(pr) != 'undefined'){
a = pr(a);
b = pr(b);
}
if (a<b) return reverse * -1;
if (a>b) return reverse * 1;
return 0;
}
}
Затем используйте его следующим образом (обратная сортировка):
data.sort(sort_array_by('date', true, function(a){
return new Date(a);
}));
В качестве другого примера вы можете отсортировать его посвойство типа "целое число":
data.sort(sort_array_by('my_int_property', true, function(a){
return parseInt(a);
}));