Estoy tratando de recorrer una matriz y enviar las tareas posteriores a hoy en otra matriz. ¿Alguien podría decirme qué estoy haciendo mal? (task.reminderDate es del tipo correcto, lo he usado en otras funciones y funciona)
taskList.forEach((task) => { if (dayjs().isAfter(dayjs(task.reminderDate))) { missedFilter.push(task); } });Creo que estás malinterpretando cómo funciona isAfter .
console.log(dayjs("2031-01-01").isAfter(dayjs())); //This returns trueActualmente está comparando si hoy es posterior a la fecha del recordatorio. Así que quieres cambiar el orden de tus fechas:
if (dayjs(task.reminderDate).isAfter(dayjs()))Ahora está comparando si la fecha del recordatorio es posterior a la fecha de hoy
Su descripción no describe lo que está haciendo, pero no estoy seguro de qué está mal:
Esto es una prueba para ver si "hoy" es posterior a (task.reminderDate)
Por lo tanto, el resultado debe ser que la matriz "missedFilter" debe llenarse con tareas con una fecha de recordatorio anterior a hoy.
Eso parece algo razonable, pero afirma que desea insertar las tareas posteriores a hoy en una matriz.
No creo que haya nada malo con su código real, pero puede haber algo malo con la semántica de lo que pretende hacer.
por ejemplo, si realmente desea tareas con una fecha de recordatorio en el futuro, debe invertir el código:
var today = dayjs(); taskList.forEach((task) -> { if (dayjs(task.reminderDate).isAfter(today))) { missedFilter.push(task); } });(Tenga en cuenta también, empujar el inicializador dayjs fuera del bucle. Eficiencia menor, pero también ayuda con la claridad).