我试过了,但我不能提出条件.我想找个公共的位置.
- 第一人称测试在上午10点到下午12点之间提供
- 第二人称elton在上午9点到10点30分和10点30分之间可用 上午11点
- 第三人肖恩在上午10:30至11:00之间有空
因此,公共插槽将为上午10:30至11:00
const input = [
{
email: 'test@test.com',
range: [
{start: '10:00:00', end: '12:00:00' }
],
},
{
email: 'elton@test.com',
range: [
{start: '09:00:00', end: '10:30:00'},
{start: '10:30:00', end: '11:00:00' }
],
},
{
email: 'shawn@test.com',
range: [
{start: '10:30:00', end: '11:00:00' }
],
},
];
输出:
[
{start: '10:30:00', end: '11:00:00' }
]
第二个输入示例
const input = [
{
email: 'test@test.com',
range: [
{start: '10:00:00', end: '12:00:00' }
],
},
{
email: 'elton@test.com',
range: [
{start: '09:00:00', end: '10:30:00'},
{start: '10:30:00', end: '11:00:00' },
{start: '14:30:00', end: '15:00:00' }
],
}
];
输出:
[
{start: '10:00:00', end: '11:00:00' }
]
第三个输入示例:
const input = [
{
email: 'test@test.com',
range: [
{start: '10:00:00', end: '12:00:00' },
{start: '14:30:00', end: '15:00:00' }
],
},
{
email: 'elton@test.com',
range: [
{start: '09:00:00', end: '10:30:00'},
{start: '10:30:00', end: '11:00:00' },
{start: '14:30:00', end: '15:00:00' }
],
}
];
输出:
[
{start: '10:00:00', end: '11:00:00' },
{start: '14:30:00', end: '15:00:00' }
]
到目前为止我已经try 过的代码
function generateIntersectSlot(interviewerRange) {
if (!interviewerRange.length) {
return [];
}
for (let interviewer of interviewerRange) {
for (let nextInterviewer of interviewerRange) {
if (interviewer.email == nextInterviewer.email) {
continue;
}
console.log(interviewer.email, 'interviewerSlot email')
console.log(nextInterviewer.email, 'nextInterviewer email')
const interviewerSlot = interviewer.range;
const nextInterviewerSlot = nextInterviewer.range;
for (let intSlot of interviewerSlot) {
for (let nextIntSlot of nextInterviewerSlot) {
console.log(intSlot, 'intSlot')
console.log(nextIntSlot, 'nextIntSlot')
// if(new Date(`${getDate}T${intSlot.start}`) >= new Date(`${getDate}T${nextIntSlot.start}`) ) {
// console.log(intSlot, 'asd')
// } else {
// }
}
}
}
}
}
generateIntersectSlot(input);
<script>
const input = [{
email: 'test@test.com',
range: [{
start: '10:00:00',
end: '12:00:00'
}],
},
{
email: 'elton@test.com',
range: [{
start: '09:00:00',
end: '10:30:00'
},
{
start: '10:30:00',
end: '11:00:00'
}
],
},
{
email: 'shawn@test.com',
range: [{
start: '10:30:00',
end: '11:00:00'
}],
},
];
</script>