result_database = [ { id: 1, name: "Tom Riddle", date: "2022-05-16T22:00:00.000Z" }, { id: 2, name: "Hank Some", date: "2022-05-19T22:00:00.000Z" }, { id: 3, name: "Family Man", date: "2022-05-17T22:00:00.000Z" }, ]; var holiday_date = new Date().toJSON().slice(0, 10); let holiday_date_remove = result_database.filter( (item1) => !result_database.find( (item2) => item1.name == item2.name && item2.date.slice(0, 10) == holiday_date ) ); const holiday_result = [ ...new Map( holiday_date_remove.map((item) => [JSON.stringify(item.name), item]) ).values(), ]; console.log(holiday_result); Estoy tratando de .slice(0,10) la fecha. Lo veo así "2022-05-16T22:00:00.000Z" , pero lo necesito como "2022-05-16" , así que intento date.slice(0, 10) pero no funciona.
Primero puede mapear sobre result_database usando Array.prototype.map y actualizar la propiedad de date y luego filtrar la matriz según la fecha de vacaciones usando Array.prototype.filter holiday_date
const result_database = [ { id: 1, name: "Tom Riddle", date: "2022-05-16T22:00:00.000Z" }, { id: 2, name: "Hank Some", date: "2022-05-19T22:00:00.000Z" }, { id: 3, name: "Family Man", date: "2022-05-17T22:00:00.000Z" }, ], holiday_date = new Date().toJSON().slice(0, 10), holiday_date_remove = result_database .map((item) => ({ ...item, date: item.date.slice(0, 10) })) .filter(({ date }) => date !== holiday_date); console.log(holiday_date_remove);Debe dividir por "T" cuando está en formato ISOString.
const yourTypeDate = new Date().toISOString().split('T')[0];
Esta comparación a continuación está funcionando, verificará si la fecha de la base de datos es igual a la fecha de hoy, si eliminará el índice, el filtro está funcionando.
result_database = [ { id: 1, name: "Tom Riddle", date: "2022-05-16T22:00:00.000Z" }, { id: 2, name: "Hank Some", date: "2022-05-19T22:00:00.000Z" }, { id: 3, name: "Family Man", date: "2022-05-17T22:00:00.000Z" }, ]; var holiday_date = new Date().toISOString().split('T')[0]; let holiday_date_remove = result_database.filter( (item1) => !result_database.find( (item2) => { item2.date = item2.date.split('T')[0]; return ((item1.name == item2.name) && (item2.date.split('T')[0] == holiday_date)); } ) ); const holiday_result = [ ...new Map( holiday_date_remove.map((item) => [JSON.stringify(item.name), item]) ).values(), ]; console.log(holiday_result);