मान लीजिए कि हमारे पास इस तरह की संख्याओं की एक क्रमबद्ध सरणी है जहाँ हमारे पास लगातार संख्याएँ हो सकती हैं।
const arr = [1, 2, 3, 5, 7, 8, 9, 11];
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो एक ऐसी सरणी लेता है।
हमारे फ़ंक्शन को इस सरणी के लिए एक क्रम बनाना चाहिए। अनुक्रम ऐसा होना चाहिए कि सरणी के सभी लगातार तत्वों के लिए, हमें बीच में संख्याओं को डैश (-) के साथ बदलकर और अन्य सभी संख्याओं को अपरिवर्तित रखते हुए शुरुआती और समाप्ति संख्याएं लिखनी होंगी।
इसलिए, उपरोक्त सरणी के लिए, आउटपुट इस तरह दिखना चाहिए -
const output = '1-3,5,7-9,11';
उदाहरण
इसके लिए कोड होगा -
const arr = [1, 2, 3, 5, 7, 8, 9, 11]; const buildSequence = (arr = []) => { let pointer; return arr.reduce((acc, val, ind) => { if (val + 1 === arr[++ind]) { if (pointer == null ) { pointer = val; }; return acc; }; if (pointer) { acc.push(`${pointer}-${val}`); pointer = null; return acc; } acc.push(val); return acc; }, []).join(','); } console.log(buildSequence(arr));
आउटपुट
और कंसोल में आउटपुट होगा -
1-3,5,7-9,11