У меня есть 2 массива:
- сгенерированных временных меток (30 минут каждая
(1800 difference in each timestamp)
) от определенного начального часа до конечного часа дня. - Я получаю ответ забронированных слотов от ответа API.
Мне нужно объединить оба массива, чтобы сформировать массив объектов, представляющих доступные и забронированные слоты:
let availableTimeslots = [
1559709000,
1559710800,
1559712600,
1559714400,
1559716200,
1559718000,
1559719800,
1559721600,
1559723400,
1559725200,
1559727000,
1559728800,
1559730600,
1559732400,
1559734200,
1559736000,
1559737800,
1559739600
];
let bookedTimeSlots = {
bookings: [
{
timestamp: {
from: 1559719800,
to: 1559723400
}
},
{
timestamp: {
from: 1559730600,
to: 1559732400
}
}
]
};
Мне нужно создать массив объектов, что-то вроде:
[
{
available: true,
timeslots: [1559709000, 1559710800, 1559712600, 1559714400, 1559716200, 1559718000]
},
{
available: false,
timeslots: [1559719800, 1559721600, 1559723400]
},
{
available: true,
timeslots: [1559725200, 1559727000, 1559728800]
},
{
available: false,
timeslots: [1559730600, 1559732400]
},
{
available: true,
timeslots: [1559732400, 1559734200, 1559736000, 1559737800, 1559739600]
}
];
Я действительно запутался, как поступить с этим, я думаю озамените значение в availableTimeslots
на желаемый объект забронированного слота, а затем на все значения, не связанные с объектом, на {available: true, timeslots: [...]}
bookedTimeSlots.bookings.map((bs, i)=> {
let ai = availableTimeslots.findIndex(bs.timestamp.from);
ai > -1 && (availableTimeslots[ai]={available: false, x : [..._.range(bs.timestamp.from, bs.timestamp.to, 1800)]});
})
. Любая помощь будет принята.