En JSX, estoy mapeando una cantidad de días que he calculado en un mes:
{range(daysInMonth).map((i) => ( <div className="day-cell day-cell--in-month" key={i} > {i + 1} </div> ))}Luego tengo una serie de eventos que provienen de una API:
const events = [ { date: timestamp, description: "Meeting with friends" } //More events// ]¿Cómo puedo mapear a través de la matriz de eventos y hacer coincidir la marca de tiempo del evento con la marca de tiempo actual de la fecha de los días en el mes que se está mapeando y luego mostrar la descripción del evento?
En caso de que la suposición del comentario anterior...
"el daysInMonth es solo un número, por ejemplo, para febrero sería 28". ... por lo tanto, ¿se puede suponer que el valor de marca de tiempo/fecha de un elemento de eventos también es un número entero?
... se aplica, se podría implementar la tarea de filter anterior en colaboración con some .
const events = [{ date: timestamp, description: "Meeting with friends" }/*, { More events }*/]; { range( daysInMonth ).filter(dayValue => events.some(({ date }) => date === dayValue) ).map(dayValue => ( <div className="day-cell day-cell--in-month" key={dayValue} > {dayValue + 1} </div> )) }Editar
"... por lo tanto, ¿se puede suponer que el valor de marca de tiempo/fecha de un elemento de
eventstambién es un número entero?" -Peter Seliger"... es una marca de tiempo de una base de datos MySQL". - adherirse
"... luego, dentro del código de filtro ya proporcionado de mi respuesta, uno tiene que obtener el
daydel valor dedatede cada elemento deeventspara que sea comparable con el valor entero de cada elementodaysInMonth". -Peter Seliger
const events = [{ date: timestamp, description: "Meeting with friends" }/*, { More events }*/]; { range( daysInMonth ).filter(dayValue => events.some(({ date }) => new Date(date).getDay() === dayValue ) ).map(dayValue => ( <div className="day-cell day-cell--in-month" key={dayValue} > {dayValue + 1} </div> )) }