首页 > 解决方案 > 有没有比 javascript 中显示的嵌套 forEach 循环更快的方法?

问题描述

每次更改月份时都会显示一个日历视图。当该月发生变化时,会发出一个 GET 请求,该请求会获取该特定月份和年份的所有预订。每天的单元格都有一个 YYYYMMDD 类。如果响应中的日期与当天单元格匹配,则将 a<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);
            }
        });
    });
})

标签: javascriptforeach

解决方案


推荐阅读