检查重叠时间 JavaScript
javascriptweb developmentfront end technologyobject oriented programming更新于 2024/1/3 0:44:17
我们需要编写一个 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 参考教程 - 该教程包含有关 javascript 的更多信息:https://www.cainiaomax.com/javascript/

