檢查 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。重疊時間段是指具有一些共同時間的時段。
示例
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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP