我正在嘗試遍歷一個陣列并將今天之后的任務推送到另一個陣列中。有人可以告訴我我做錯了什么嗎?(task.reminderDate 是正確的型別,我在其他功能中使用過它并且它有效)
taskList.forEach((task) => {
if (dayjs().isAfter(dayjs(task.reminderDate))) {
missedFilter.push(task);
}
});
uj5u.com熱心網友回復:
您的描述沒有描述您在做什么,但我不確定哪個是錯誤的:
這是測驗“今天”是否在(task.reminderDate)之后
因此,輸出應該是陣列“missedFilter”應該填充有提醒日期早于今天的任務。
這似乎是一件合理的事情,但是您宣告您想將今天之后的任務推送到一個陣列中。
我認為您的實際代碼沒有任何問題,但是您打算做的事情的語意可能有問題。
例如,如果您將來真的想要帶有提醒日期的任務,您應該反轉代碼:
var today = dayjs();
taskList.forEach((task) -> {
if (dayjs(task.reminderDate).isAfter(today))) {
missedFilter.push(task);
}
});
(另請注意,將 dayjs 初始化程式推到回圈之外。效率較低,但也有助于清晰。)
uj5u.com熱心網友回復:
我認為您誤解了isAfter 的作業原理。
console.log(dayjs("2031-01-01").isAfter(dayjs())); //This returns true
目前您正在比較今天是否在提醒日期之后。因此,您想更改日期的順序:
if (dayjs(task.reminderDate).isAfter(dayjs()))
現在您正在比較提醒日期是否在今天之后
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/468563.html
標籤:javascript 天
上一篇:使用vanillaJS在滑鼠懸停/滑鼠懸停時顯示隱藏按鈕
下一篇:FireBase值未正確列印
