0
我有以下javascript函數(感謝Nina Scholz)。Javascript for loop檢查間隔重疊
function overlapping(a, b) {
function getMinutes(s) {
var p = s.split(':').map(Number);
return p[0] * 60 + p[1];
}
return getMinutes(a.end) > getMinutes(b.start) && getMinutes(b.end) > getMinutes(a.start);
}
我現在的問題是,我有例如4intervals:
var myArray = [{ start: '01:00', end: '04:00' }
{ start: '05:00', end: '08:00' }
{ start: '07:00', end: '11:00' }
{ start: '09:30', end: '18:00' }]
現在我會檢查是否有任何區間重疊另一個。
var overlap = false;
for(var n = 0; n < myArray.length; n++) {
for(var i = 0; i < n; i++) {
var result = overlapping(myArray[n], myArray[i]);
if(result == true) {
overlap = result;
break;
}
}
}
我現在的問題是如果這是正確的,或者如果有更好的方法來做到這一點?
如果您已經測試過的代碼,你應該知道,如果它的正確。 –
如果有間隔[1-4] [2-5] [6-7] [6-8] - 你想要返回什麼?真的,小時,間隔? –
對於初學者來說,'result'變量是多餘的。你可以把結果直接放在'overlap'中,然後檢查'if(overlap){break}'。 –