Javascript:找到最早的时间

时间:2015-01-01 15:52:21

标签: javascript

var slots = [
  [['11:30', '13:30']], // eg. Mr.X is free for a meeting during this time
  [['12:00', '14:00'], ['16:30', '17:30']], // eg. Mr.Y is free for a meeting during this time
  [['12:15', '15:00'], ['16:30', '17:45']]  // eg. Mr.Z is for for a meeting during this time
];

slots是包含任何会议日程安排的可用时间范围的3D数组。

我需要找到最早的时间,每个人都有空。

例如。在这里,12:15是最早的时间,因此在['11:30', '13:30'] and ['12:00', '14:00']之间。

此处slots按人数排序,但可能并非总是如此。即。

var slots = [   
   [['12:00', '14:00'], ['16:30', '17:30']], // eg. Mr.Y is free for a meeting during this time   
   [['11:30', '13:30']], // eg. Mr.X is free for a meeting during this time               
   [['12:15', '15:00'], ['16:30', '17:45']]  // eg. Mr.Z is for for a meeting during this time 
];

也可能发生。此外,对于一个人来说可能的任何数量的插槽,最早可能并非总是来自第一个插槽,可以来自任何插槽。

我尝试过某种方式,但没有任何效果。

1 个答案:

答案 0 :(得分:0)

让我们看看......

  • 我会按时间顺序创建一个包含所有可能的15分钟时隙的数组。

  • 最初用0填充所有时隙数组元素。

  • 浏览每个人预约数组(无特定顺序),并为每个人使用的每个时间段添加1。

  • 完成后,每个人都可以使用任何具有零值的时段元素。

  • 零值和索引最接近零的时段是第一个可用时间。