हमें एक JavaScript फ़ंक्शन लिखने की आवश्यकता है जो पहले तर्क के रूप में स्ट्रिंग्स की एक सरणी और दूसरे तर्क के रूप में एक स्ट्रिंग लेता है।
फ़ंक्शन को यह जांचना चाहिए कि क्या दूसरे तर्क द्वारा निर्दिष्ट स्ट्रिंग को किसी भी संभावित तरीके से सरणी के तारों को मिलाकर बनाया जा सकता है।
उदाहरण के लिए - यदि इनपुट सरणी है -
const arr =["for",,"car",,"keys","forth"];
और स्ट्रिंग है -
const str ="forthcarkeys";
तब आउटपुट सही होना चाहिए, क्योंकि स्ट्रिंग सरणी के 3, 1 और 2 इंडेक्स पर तत्वों का एक संयोजन है।
उदाहरण
इसके लिए कोड होगा -
const arr =["for",,"car",,"keys",,"forth"];const str ="forthcarkeys";const checkPossibility =(str ='', arr =[]) => { संभावनाएँ दें =arr.reduce (फ़ंक्शन (आर, ए) {चलो p =str.indexOf(a); जबकि (p!==−1) { r.push({ शब्द:a, स्थिति:p}); p =str .indexOf (ए, पी + 1); } वापसी आर; }, []); कॉन्स्ट फाइंड रिकर्सिवली =(i, t) => {चलो s =t.slice (), j; अगर (i ===संभावनाएं। लंबाई) {वापसी! टी। शामिल हों (''); } अगर (संभावनाएं [i]। शब्द। विभाजन ('')। प्रत्येक (फ़ंक्शन (सी, जे) {वापसी एस [जे + संभावनाएं [i]। स्थिति]! =='';})) {के लिए (जे =0; जे <संभावनाएं [i]। शब्द। लंबाई; जे ++) {एस [जे + संभावनाएं [i]। स्थिति] =''; } } वापसी ढूंढें रिकर्सिवली (i + 1, s) || खोज रिकर्सिवली (i + 1, टी); } वापसी खोजें रिकर्सिवली (0, str.split(''));};console.log(checkPossibility(str, arr));
आउटपुट
और कंसोल में आउटपुट होगा -
<पूर्व>सत्य