检查重叠时间JavaScript

我们需要编写一个JavaScript函数,该函数需要一个时间间隔数组(像这样的开始时间和结束时间-

const arr = [

   { start: '01:00', end: '04:00' },

   { start: '05:00', end: '08:00' },

   { start: '07:00', end: '11:00' },

   { start: '09:30', end: '18:00' },

];

我们的函数应该遍历此对象数组,并对照其他对象检查该数组的所有元素。

如果发现重叠间隔,则迭代停止并返回true,否则返回false。通过重叠间隔,我们指的是具有相同时间的时间间隔。

示例

const arr = [

   { start: '01:00', end: '04:00' },

   { start: '05:00', end: '08:00' },

   { start: '07:00', end: '11:00' },

   { start: '09:30', end: '18:00' },

];

const overlapping = (a, b) => {

   const getMinutes = s => {

      const p = s.split(':').map(Number);

      return p[0] * 60 + p[1];

   };

   return getMinutes(a.end) > getMinutes(b.start) && getMinutes(b.end) > getMinutes(a.start);

};

const isOverlapping = (arr) => {

   let i, j;

   for (i = 0; i < arr.length - 1; i++) {

       for (j = i + 1; j < arr.length; j++) {

         if (overlapping(arr[i], arr[j])) {

            return true;

         }

      };

   };

   return false;

};

console.log(isOverlapping(arr));

输出结果

控制台中的输出将是-

true

以上是 检查重叠时间JavaScript 的全部内容, 来源链接: utcz.com/z/334721.html

回到顶部