मान लीजिए, हमारे पास इस तरह की संख्याओं की एक क्रमबद्ध (बढ़ती क्रम) सरणी है -
const arr = [2, 5, 7, 8, 9];
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो ऐसी एक सरणी लेता है। फ़ंक्शन को इनपुट सरणी के प्रत्येक तत्व के लिए एक नया सबअरे बनाना चाहिए।
उप-सरणी में अंतर होना चाहिए (उसी तत्व और बाद के तत्वों के बीच का अंतर एक-एक करके) तत्व।
इसलिए, पहले सरणी तत्व के लिए, अंतर हैं -
5 - 2 = 3 7 - 2 = 5 8 - 2 = 6 9 - 2 = 7
इसलिए, पहले तत्व के लिए उप-सरणी होना चाहिए -
[3, 5, 6, 7]
इसी तरह, दूसरे तत्व के लिए, यह होना चाहिए -
[2, 3, 4]
तीसरे तत्व के लिए -
[1, 2]
चौथा -
[1]
और चूँकि पाँचवाँ अंतिम तत्व है तो उसके लिए कोई वस्तु नहीं बचेगी, इसलिए हम अंतिम तत्व पर विचार नहीं कर रहे हैं।
इसलिए, पूर्ण सरणी के लिए आउटपुट होना चाहिए -
const output = [ [3, 5, 6, 7], [2, 3, 4], [1, 2], [1] ];
उदाहरण
इसके लिए कोड होगा -
const arr = [2, 5, 7, 8, 9];
const distanceBetween = (arr,r = []) => {
if(r.length <= arr.length-2) {
let temp = [];
let b = arr[r.length];
arr.forEach(e => temp.push(e - b));
r.push(temp.filter(e => e > 0));
return distanceBetween(arr,r);
} else {
return r;
};
}
console.log(distanceBetween(arr)); आउटपुट
और कंसोल में आउटपुट होगा -
[ [ 3, 5, 6, 7 ], [ 2, 3, 4 ], [ 1, 2 ], [ 1 ] ]