我想基于数组对象的一个属性start
对数组进行排序。如何通过纯JS中的某个字段(如_.sortBy)对对象进行排序?
events = _.sortBy(events, function(a) {
return moment(new Date(a.start)).format();
});
这给了我正确的结果。但是,以下不。
events = events.sort(function(a, b) {
return moment(new Date(a.start)).format() > moment(new Date(b.start)).format();
});
有谁知道发生了什么事?
小提琴:https://jsfiddle.net/q24zx11h/1/
'sort'函数参数应返回'{-1; 0; 1}'不是布尔值。顺便说一句,有没有理由把日期对象包裹在“时刻”对象中? – zerkms
你不需要做'foo = foo.sort(..)','.sort'有副作用/修改原始数组 –
我只想比较一下所有的时间。我会'时刻(新日期(xxx))'而不是'时刻(xxx)',因为后者有时会给我发出警告信息。也许我所做的并不是必要的? –