मान लीजिए कि हमारे पास इस तरह बढ़ते क्रम में क्रमबद्ध पूर्णांकों की एक सरणी है -
const arr = [ 1, 2, 3, 5, 6, 7, 10, 12, 17, 18];
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो ऐसी एक सरणी लेता है। फ़ंक्शन को सरणी को इस तरह से समूहित करना चाहिए कि -
-
एक समूह के तत्वों में 1 या उससे कम का अंतर होता है
-
प्रत्येक समूह तत्व में मान्य माने जाने के लिए एक से अधिक तत्व होने चाहिए
उपरोक्त शर्तों के आधार पर, अपेक्षित आउटपुट होगा -
const output = [ [1, 2, 3], [5, 6, 7], [17, 18] ];
उदाहरण
इसके लिए कोड होगा -
const arr = [ 1, 2, 3, 5, 6, 7, 10, 12, 17, 18]; const groupNear = (arr = []) => { const res = []; for (let ind = 0; ind < arr.length; ind++) { let value = arr[ind]; if (arr[ind − 1] + 1 === value) { res[res.length − 1].push(value); } else if (value + 1 === arr[ind + 1]) { res.push([value]); }; }; return res; }; console.log(groupNear(arr));
आउटपुट
और कंसोल में आउटपुट होगा -
[ [ 1, 2, 3 ], [ 5, 6, 7 ], [ 17, 18 ] ]