我正在尝试对我的对象数组进行排序。对象具有日期属性。我需要按升序或降序日期对我的数组进行排序。我尝试这样
https://jsfiddle.net/rxaLutgn/1/
function sort_by(field, reverse, primer) {
var key = primer ?
function (x) {
return primer(x[field])
} :
function (x) {
return x[field]
};
reverse = !reverse ? 1 : -1;
return function (a, b) {
return a = key(a), b = key(b), reverse * ((a > b) - (b > a));
}
}
它没有按升序或降序对数组进行排序。
最佳答案
你的函数相当困惑,尝试一下
function sort_by(field, reverse, primer) {
var key = primer ?
function (x) {
return primer(x[field])
} :
function (x) {
return x[field]
};
reverse = !reverse ? 1 : -1;
return function (a, b) {
a = new Date(key(a)), b = new Date(key(b));
return reverse * (a-b);
}
}
您需要将日期字符串转换为日期才能排序,并且还需要更改返回代码。
工作中fiddle
关于javascript - 为什么数组在javascript中不按递增日期或递减日期排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33695764/