I have the following array example
userShifts = [
{ userId: 1, startTime: "05:00", endTime: "13:00" },
{ userId: 2, startTime: "05:00", endTime: "13:00" },
{ userId: 3, startTime: "05:00", endTime: "13:00" },
{ userId: 4, startTime: "13:00", endTime: "21:00" },
{ userId: 5, startTime: "13:00", endTime: "21:00" },
{ userId: 6, startTime: "13:00", endTime: "21:00" },
{ userId: 7, startTime: "21:00", endTime: "00:00" },
{ userId: 8, startTime: "21:00", endTime: "00:00" },
{ userId: 9, startTime: "21:00", endTime: "00:00" },
{ userId: 10, startTime: "07:00", endTime: "15:00" },
{ userId: 11, startTime: "07:00", endTime: "15:00" },
{ userId: 12, startTime: "03:00", endTime: "11:00" },
];
I need a function that will create a shift blokcs of 24 hours so from 00:to
00:00 and the next user start time cannot be before the end time fo the previous one so the output of the above array would be
userShiftBlocks = [
[
{ userId: 1, startTime: "05:00", endTime: "13:00" },
{ userId: 4, startTime: "13:00", endTime: "21:00" },
{ userId: 7, startTime: "21:00", endTime: "00:00" }
],
[
{ userId: 2, startTime: "05:00", endTime: "13:00" },
{ userId: 5, startTime: "13:00", endTime: "21:00" },
{ userId: 8, startTime: "21:00", endTime: "00:00" }
],
[
{ userId: 3, startTime: "05:00", endTime: "13:00" },
{ userId: 6, startTime: "13:00", endTime: "21:00" },
{ userId: 9, startTime: "21:00", endTime: "00:00" }
],
[
{ userId: 10, startTime: "07:00", endTime: "15:00" }
],
[
{ userId: 11, startTime: "07:00", endTime: "15:00" }
],
[
{ userId: 12, startTime: "03:00", endTime: "11:00" }
]
];
So for each block a 24 hour shift period , the start time of the next user is after or the same as the previous user end time. So an array like below where not everythign matched start end exactly should also work
userShifts = [
{ userId: 1, startTime: "05:00", endTime: "13:00" },
{ userId: 2, startTime: "05:00", endTime: "13:30" },
{ userId: 3, startTime: "05:00", endTime: "13:00" },
{ userId: 4, startTime: "13:00", endTime: "21:00" },
{ userId: 5, startTime: "14:30", endTime: "21:00" },
{ userId: 6, startTime: "13:00", endTime: "21:00" },
{ userId: 7, startTime: "21:30", endTime: "00:00" },
{ userId: 8, startTime: "21:00", endTime: "00:00" },
{ userId: 9, startTime: "21:00", endTime: "00:00" },
{ userId: 10, startTime: "07:00", endTime: "15:00" },
{ userId: 11, startTime: "07:00", endTime: "15:00" },
{ userId: 12, startTime: "03:00", endTime: "11:00" },
];
I am not gettig the results I want yet and chatgpt completely looses the plotso help is appreciated
1