我正在尝试通过数组循环并将今天之后的任务推到另一个数组中。有人能告诉我我做错了什么吗?(任务。reminderDate是正确的类型,我在其他函数中使用过它,它工作)
taskList.forEach((task) => {
if (dayjs().isAfter(dayjs(task.reminderDate))) {
missedFilter.push(task);
}
});
我想你误解了isAfter的工作原理。
console.log(dayjs("2031-01-01").isAfter(dayjs())); //This returns true
当前您正在比较今天是否在提醒日期之后。如果您想更改日期的顺序:
if (dayjs(task.reminderDate).isAfter(dayjs()))
现在你比较的是提醒日期是否在今天的日期之后
你的描述没有描述你在做什么,但我不确定哪个是错的:
这是在测试是否"today"(task.reminderDate)
那么,输出应该是数组"missedFilter"应该写满在今天之前有提醒日期的任务。
这似乎是一个合理的事情,但是你声明你想把今天之后的任务推入数组。
我不认为你的实际代码有什么问题,但是你想要做的事情的语义可能有问题。
。如果你真的希望将来的任务有一个提醒日期,你应该反转代码:
var today = dayjs();
taskList.forEach((task) -> {
if (dayjs(task.reminderDate).isAfter(today))) {
missedFilter.push(task);
}
});
(还要注意,将dayjs初始化器推到循环之外。小效率,但也有助于清晰。)