我有一个对象 TaskItemVO
,其字段为 dueDate
,其类型为 Date
:
export class TaskItemVO {
public dueDate: Date;
}
我有这个方法,当我尝试按日期排序时调用它,但它不起作用:public sortByDueDate(): void {
this.myArray.sort((a: TaskItemVO, b: TaskItemVO) => {
return a.dueDate - b.dueDate;
});
}
我在方法的返回行中收到此错误:那么在 TypeScript 中按日期字段对数组进行排序的正确方法是什么?
最佳答案
尝试使用 Date.getTime() 方法:
public sortByDueDate(): void {
this.myArray.sort((a: TaskItemVO, b: TaskItemVO) => {
return a.dueDate.getTime() - b.dueDate.getTime();
});
}
^ 以上会抛出未定义日期的错误,因此请尝试以下操作:
编辑
如果要处理未定义:
private getTime(date?: Date) {
return date != null ? date.getTime() : 0;
}
public sortByDueDate(): void {
this.myArray.sort((a: TaskItemVO, b: TaskItemVO) => {
return this.getTime(a.dueDate) - this.getTime(b.dueDate);
});
}
关于sorting - TypeScript 按日期排序不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40248643/