हमें एक 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