JSFiddle - React, Tailwind, and code Playground
by Saksham Malhotra
JavaScript
let bookingsA = [
['09:00', '10:00'],
['11:00', '12:00'],
['13:00', '15:00']
]
let workingHoursA = ['09:00', '16:00']
let bookingsB = [
['11:00', '12:30'],
['14:00', '14:30'],
['16:30', '17:00'],
['17:00', '18:00']
]
let workingHoursB = ['10:00', '18:00']
let meetingDuration = 30;
let results = [];
function getNumber(time) {
return +time.replace(':', '');
}
function getSlots() {
let startArray = [];
let endArray = [];
let aStartTracker = 0,
aEndTracker = 0,
bStartTracker = 0,
bEndTracker = 0;
while (aTracker < bookingsA.length && bTracker < bookingsB.length) {
if (getNumber(bookingsA[aStartTracker][0]) < getNumber(bookingsB[bStartTracker][0])) {
startArray.push(getNumber(bookingsA[aStartTracker][0]));
aStartTracker++;
} else {
startArray.push(getNumber(bookingsB[bStartTracker][0]));
bStartTracker++;
}
if (getNumber(bookingsA[aEndTracker][1]) < getNumber(bookingsB[bEndTracker][1])) {
startArray.push(getNumber(bookingsA[aEndTracker][1]));
aEndTracker++;
} else {
startArray.push(getNumber(bookingsB[bEndTracker][1]));
bEndTracker++;
}
}
}