मान लीजिए, हमारे पास स्ट्रिंग्स की एक सरणी है जिसमें कुछ नाम हैं जैसे:
const arr = ['Dinesh', 'Mahesh', 'Rohit', 'Kamal', 'Jatin Sapru', 'Jai'];
और वर्णों की एक यादृच्छिक स्ट्रिंग जैसे:
const str = 'lsoaakjm';
हमें एक JavaScript फ़ंक्शन लिखना है जो ऐसी सरणी और स्ट्रिंग को दो आर्गुमेंट के रूप में लेता है।
फिर फ़ंक्शन को, सरणी के प्रत्येक तत्व के लिए जांचना चाहिए कि क्या वह विशेष तत्व दूसरी आर्गुमेंट के रूप में दी गई स्ट्रिंग से पूरी तरह से बनाया जा सकता है।
यदि यह शर्त सरणी के किसी भी तत्व के लिए पूरी होती है, तो हमें वह तत्व लौटाना चाहिए अन्यथा खाली स्ट्रिंग लौटानी चाहिए।
कोड उदाहरण
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