मान लीजिए, हमारे पास स्ट्रिंग्स की एक सरणी है जिसमें कुछ नाम इस तरह हैं -
const arr = ['Dinesh', 'Mahesh', 'Rohit', 'Kamal', 'Jatin Sapru', 'Jai'];
और इस तरह के वर्णों की एक यादृच्छिक स्ट्रिंग -
const str = 'lsoaakjm';
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो इस तरह के एक सरणी और स्ट्रिंग को दो तर्क के रूप में लेता है।
फिर सरणी के प्रत्येक तत्व के लिए फ़ंक्शन को यह जांचना चाहिए कि क्या वह विशेष तत्व पूरी तरह से दूसरे तर्क के रूप में दिए गए स्ट्रिंग से बनाया जा सकता है।
यदि यह शर्त सरणी के किसी भी तत्व के लिए संतुष्ट है, तो हमें उस तत्व को वापस कर देना चाहिए अन्यथा हमें एक खाली स्ट्रिंग वापस कर देनी चाहिए।
उदाहरण
निम्नलिखित कोड है -
const arr = ['Dinesh', 'Mahesh', 'Rohit', 'Kamal', 'Jatin Sapru', 'Jai']; const str = 'lsoaakjm'; const initialise = (str = '', map) => { for(let i = 0; i < str.length; i++){ map[str[i]] = (map[str[i]] || 0) + 1; }; }; const deleteAll = map => { for(key in map){ delete map[key]; }; }; const checkForFormation = (arr = [], str = '') => { const map = {}; for(let i = 0; i < arr.length; i++){ const el = arr[i].toLowerCase(); initialise(str, map); let j; for(j = 0; j < el.length; j++){ const char = el[j]; if(!map[char]){ break; }else{ map[char]--; } }; if(j === el.length){ return arr[i]; }; deleteAll(map); } return ''; }; console.log(checkForFormation(arr, str));
आउटपुट
कंसोल आउटपुट निम्नलिखित है -
Kamal