मान लीजिए कि हमारे पास स्ट्रिंग्स की दो सरणियाँ हैं, एक कुछ शब्दों का प्रतिनिधित्व करती है और दूसरी इस तरह के कुछ वाक्य -
const names= ["jhon", "parker"]; const sentences = ["hello jhon", "hello parker and parker", "jhonny jhonny yes parker"];
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो स्ट्रिंग्स के दो ऐसे सरणियों को लेता है।
फ़ंक्शन को उस ऑब्जेक्ट को तैयार करना और वापस करना चाहिए जिसमें वाक्य सरणी में उनकी गिनती के विरुद्ध मैप किए गए पहले (नाम) सरणी के तार होते हैं।
इसलिए, इन सरणियों के लिए, आउटपुट कुछ इस तरह दिखना चाहिए -
const output = { "jhon": 1, "parker": 3 };
उदाहरण
इसके लिए कोड होगा -
const names= ["jhon", "parker"]; const sentences = ["hello jhon", "hello parker and parker", "jhonny jhonny yes parker"]; const countAppearances = (names = [], sentences = []) => { const pattern = new RegExp(names.map(name => `\\b${name}\\b`).join('|'), 'gi'); const res = {}; for (const sentence of sentences) { for (const match of (sentence.match(pattern) || [])) { res[match] = (res[match] || 0) + 1; } }; return res; }; console.log(countAppearances(names, sentences));
आउटपुट
और कंसोल में आउटपुट होगा -
{ jhon: 1, parker: 3 }