Tengo objetos con diferentes fechas. Cómo puedo filtrar las fechas pasadas y la fecha actual. Tengo fechas del pasado y del futuro, solo quiero fechas pasadas y las fechas actuales de los objetos. Intento filtrar pero no estoy seguro de qué estoy haciendo mal. Mi CÓDIGO:
const arr = [{ "id": "e18dae03-99c7-4ffa-be2f-a595fc7fad15", "event_date": "2021-09-30T01:00:00.000Z", "alert_name": null, "alert_level": null, "alert_action": null, "alert_details": null, }, { "id": "e18dae03-99c7-4ffa-be2f-a595fc7fad15", "event_date": "2021-10-30T01:00:00.000Z", "alert_name": null, "alert_level": null, "alert_action": null, "alert_details": null, } { "id": "765a508f-fb47-4de4-bf69-19f0db38ccfc", "event_date": "2021-09-17T22:03:00.000Z", "alert_name": null, "alert_level": null, "alert_action": null, "alert_details": null, }, { "id": "bc07a114-43f4-49a1-bb6c-fec801aee749", "longitude": null, "event_date": "2021-11-19T07:51:00.000Z", "alert_name": null, "alert_level": null, "alert_action": null, "alert_details": null, } ] const filterByExpiration = () => arr.filter(({ event_date }) => event_date <= new Date());event_date es una cadena. Primero debe convertirlo en un objeto Date .
const filterByExpiration = () => arr.filter(({ event_date }) => new Date(event_date) <= new Date());O compárelo con una cadena de fecha ISO
const filterByExpiration = () => arr.filter(({ event_date }) => event_date <= new Date().toISOString());Debe convertir el nodo event_date en cada nodo del objeto arr to date para hacer la comparación. A partir de ahora es una cadena.
También debe llamar a la función filterByExpiration . Acabas de definir eso, no se ha llamado.
violín de trabajo
const arr = [{"id":"e18dae03-99c7-4ffa-be2f-a595fc7fad15","event_date":"2021-09-30T01:00:00.000Z","alert_name":null,"alert_level":null,"alert_action":null,"alert_details":null},{"id":"e18dae03-99c7-4ffa-be2f-a595fc7fad15","event_date":"2021-10-30T01:00:00.000Z","alert_name":null,"alert_level":null,"alert_action":null,"alert_details":null},{"id":"765a508f-fb47-4de4-bf69-19f0db38ccfc","event_date":"2021-09-17T22:03:00.000Z","alert_name":null,"alert_level":null,"alert_action":null,"alert_details":null},{"id":"bc07a114-43f4-49a1-bb6c-fec801aee749","longitude":null,"event_date":"2021-11-19T07:51:00.000Z","alert_name":null,"alert_level":null,"alert_action":null,"alert_details":null}]; const filterByExpiration = () => arr.filter(({ event_date }) => new Date(event_date) <= new Date()); console.log(filterByExpiration())Las cadenas no se pueden comparar con las fechas. Debe analizar event_date a Date usando new Date(event_date) . La comparación adecuada es
new Date(event_date) <= new Date() const arr = [{ "id": "e18dae03-99c7-4ffa-be2f-a595fc7fad15", "event_date": "2021-09-30T01:00:00.000Z", "alert_name": null, "alert_level": null, "alert_action": null, "alert_details": null, }, { "id": "e18dae03-99c7-4ffa-be2f-a595fc7fad15", "event_date": "2021-10-30T01:00:00.000Z", "alert_name": null, "alert_level": null, "alert_action": null, "alert_details": null, }, { "id": "765a508f-fb47-4de4-bf69-19f0db38ccfc", "event_date": "2021-09-17T22:03:00.000Z", "alert_name": null, "alert_level": null, "alert_action": null, "alert_details": null, }, { "id": "bc07a114-43f4-49a1-bb6c-fec801aee749", "longitude": null, "event_date": "2021-11-19T07:51:00.000Z", "alert_name": null, "alert_level": null, "alert_action": null, "alert_details": null, } ] const filterByExpiration = () => arr.filter(({ event_date }) => new Date(event_date) <= new Date()); console.log(filterByExpiration());