【发布时间】:2020-10-27 22:23:15
【问题描述】:
编辑: 找到了问题的解决方案,我认为 Date 将此日期 ("29-04-2020") 解释为 DD-MM-YYYY,而不是 MM-DD-YYYY。
例如,我有一个对象数组:
let todos: object[] = [
{
'id': 1,
'title': 'Test',
'description': 'Just a new task',
'priority': 1,
'status': 'during',
'date': new Date('29-05-2020')
},
{
'id': 2,
'title': 'test23',
'description': 'Just a new task23',
'priority': 3,
'status': 'done',
'date': new Date('29-05-2020')
},
{
'id': 3,
'title': 'test3',
'description': 'Just a new task3',
'priority': 2,
'status': 'in process',
'date': new Date('29-05-2020')
},
{
'id': 4,
'title': 'test3',
'description': 'Just a new task3',
'priority': 1,
'status': 'during',
'date': new Date('29-05-2020')
},
{
'id': 5,
'title': 'test3',
'description': 'Just a new task3',
'priority': 2,
'status': 'done',
'date': null
},
{
'id': 6,
'title': 'test3',
'description': 'Just a new task3',
'priority': 1,
'status': 'in process',
'date': new Date('29-05-2020')
},
]
我的任务是:按日期对这些对象进行排序(我还需要跳过属性为 null 的键日期(这就是我有 operator if 的原因,因为我不知道如何以另一种方式做到这一点)。所以我已经创建了一个函数:
function sortByDate() {
todos.sort((a, b) => {
console.log(a, b)
if (a['date'] == null) {
return 1;
}
if (b['date'] == null) {
return -1;
}
return a['date'].getTime() - b['date'].getTime()
})
return todos
}
但我在键“日期”(它有一个属性,不是空)上得到了排序的对象数组。而不是日期的良好属性(我没有 null )我在关键的“日期”中有属性:“无效日期”,我不知道如何修复它。
【问题讨论】:
-
因为它们是对象,您必须从对象键中删除 单引号 '。见docs。
标签: arrays typescript sorting