Knockout排序方法在chrome中不起作用

Bar*_*osz 4 javascript browser comparison knockout.js

我有一个创建和管理活动的应用程序.我使用Knockout.js来保存可观察数组中的活动.每当创建新活动时,它都会插入到数组中.其中一个活动属性是日期.我想在创建新活动之后按日期订购活动,以便在UI中正确显示它.这是我用它的一个功能:

self.Activities.unshift(activity);
self.Activities.sort(function(a, b) {
    var dateA = new Date(a.date() + " 00:00:00");
    var dateB = new Date(b.date() + " 00:00:00");
    return dateA > dateB;
});
Run Code Online (Sandbox Code Playgroud)

它在Firefox(v 16.0.2)中完美运行,但在Chrome(v 23.0.1 ...),Safari或IE中不起作用

为什么?解决方法是什么?如果有的话?

RP *_*yer 7

您传递的比较器函数sort需要返回一个数字.有些浏览器宽容并使用布尔值.

通常你会返回-1或1.像:

return dateA > dateB ? 1 : -1;
Run Code Online (Sandbox Code Playgroud)