gpt4 book ai didi

javascript - 主干日期+其他参数排序

转载 作者:行者123 更新时间:2023-11-29 22:02:21 24 4
gpt4 key购买 nike

所以,这是可行的:

comparator: function(model) {
if(this.activeSort == "time_created") {
return -(Date.parse(model.get('time_created')) || 1);
} else {
var sort = [
model.get('title'),
model.get('category'),
];
return sort;
}
}

但是如果我想按“time_created”和其他参数(标题、类别)排序,排序就不再有效了。我想不通!

基本上,我希望它能工作:

comparator: function(model) {
if(this.activeSort == "time_created") {
var sort = [
// date descending
-(Date.parse(model.get('time_created')) || 1),
model.get('title'),
model.get('category'),
];
return sort;
} else {
var sort = [
model.get('title'),
model.get('category'),
];
return sort;
}
}

最佳答案

您确实应该使用双参数比较器。返回数组不是使单参数比较器作为多属性比较器工作的好方法,主要是因为它不能可靠地工作(正如您所发现的)。

所以:

comparator: function(o1, o2) {
var v1, v2;

if (this.activeSort == "time_created") {
v1 = Date.parse(o1.get("time_created")) || 1;
v2 = Date.parse(o2.get("time_created")) || 1;
if (v1 > v2)
return -1;
if (v2 > v1)
return 1;
}

v1 = o1.get("title");
v2 = o2.get("title");
if (v1 < v2)
return -1;
if (v2 < v1)
return 1;

v1 = o1.get("category");
v2 = o2.get("category");
if (v1 < v2)
return -1;
if (v2 < v1)
return 1;

return 0;
}

关于javascript - 主干日期+其他参数排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22924690/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com