假设我有一些对象的数组:
var array = [{id: 1, date: Mar 12 2012 10:00:00 AM}, {id: 2, date: Mar 8 2012 08:00:00 AM}];
Run Code Online (Sandbox Code Playgroud)
如何从最接近当前日期和时间的日期开始按日期元素对此数组进行排序?请记住,数组可能有很多对象,但为了简单起见,我使用了2.
我会使用sort函数和自定义比较器吗?
UPDATE
在我的具体情况下,我希望日期安排从最新到最旧.结果我不得不颠倒简单函数的逻辑:
array.sort(function(a, b) {
a = new Date(a.dateModified);
b = new Date(b.dateModified);
return a>b ? -1 : a<b ? 1 : 0;
});
Run Code Online (Sandbox Code Playgroud)
这会对最近的日期进行排序.
我有一个TaskItemVO带有字段的对象,dueDate其类型为Date:
export class TaskItemVO {
public dueDate: Date;
}
Run Code Online (Sandbox Code Playgroud)
我有这个方法,当我尝试按日期排序时,我调用它,但它不起作用:
public sortByDueDate(): void {
this.myArray.sort((a: TaskItemVO, b: TaskItemVO) => {
return a.dueDate - b.dueDate;
});
}
Run Code Online (Sandbox Code Playgroud)
我在方法的返回行中得到此错误:
算术运算的右侧必须是"any","number"或枚举类型.
算术运算的左侧必须是"any","number"或枚举类型.
那么在TypeScript中按日期字段排序数组的正确方法是什么?
例如,在我的数组中,我有这些数据
var mydate = [
"2016,10,01",
"2016,09,13",
"2016,09,05",
"2016,09,09",
"2016,10,02"];
Run Code Online (Sandbox Code Playgroud)
怎么排序呢?我想要这个输出:
2016,09,05
2016,09,09
2016,09,13
2016,10,01
2016,10,02
Run Code Online (Sandbox Code Playgroud)