Есть представление календаря, которое отображается каждый раз при изменении месяца. Когда этот месяц изменяется, делается запрос GET, который получает все резервирования для этого конкретного месяца и года. Каждая дневная ячейка имеет класс ГГГГММДД. Если дата в ответе совпадает с классом ячейки дня, к ячейке дня <div>
добавляется <div>
. Приведенный ниже метод работает, но есть ли более быстрый способ сделать это? Как показано ниже, каждый ответ проверяется один за другим, а все дневные ячейки одна за другой, что требует немного времени для вычисления.
Обновлено для каждого комментария
getReservations(url)
.then(response => {
let monthDayCells = document.querySelector("#month-calendar").querySelectorAll(".day-cell");
response.forEach(reservation => {
monthDayCells.forEach(dayCell => {
if (dayCell.classList.contains(reservation.date)) {
const dayCellItem = document.createElement("DIV");
dayCellItem.classList = "calendar-event";
dayCellItem.innerHTML = `<span class="time">${reservation.startTime} - ${reservation.endTime}</span>`;
dayCell.appendChild(dayCellItem);
}
});
});
})