Найти открытые слоты времени
Я недавно сделал что-то похожее на это, и я сделал, чтобы создать объект подобный этому:
var timeSlotsObj={"8:00-8:30":0,"8:30-9:00":0,"9:00-9:30":0,"9:30-10:00":0,...."7:30-8:00":0,slotA["8:00-8:30","8:30-9:00",...]}
Затем я просмотрел каждый календарь и увеличил значение временного интервала для каждого события в определенный день , который перекрывал этот временной интервал в каждом календаре. После этого я взял массив slotsA и прошел по нему в поисках любого временного интервала, в котором все еще было 0.
Цикл выглядит следующим образом:
for(var i=0;i<timeSlotObj.slotA.length;i++){
if(timeSlotsObj[timeSlotsObj.slotA[i]]==0){
//You just found an empty time slot and it's value is timeSlotsObj.slotA[i]
}
Любое свойство объекта, значение которого по-прежнему равно 0, является открытым временным интервалом для данного набора календарей в любой день.
В моем случае я фактически использовал объекты Date в качестве свойств объекта или ключей, но идея та же. Независимо от того, в каких слотах нет событий, это свободные слоты.