इस प्रश्न के प्रयोजन के लिए, हम एक वाक्य को एक स्ट्रिंग के रूप में परिभाषित करते हैं जिसमें अंग्रेजी अक्षर और विराम चिह्न होते हैं और एक शब्द उस वाक्य का एक विकल्प होता है जो रिक्त स्थान से जुड़ा होता है।
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो एक वाक्य स्ट्रिंग में लेता है, str, पहले तर्क के रूप में और एक संख्या, num, दूसरे तर्क के रूप में। फ़ंक्शन को पहले वाक्य में प्रत्येक शब्द की आवृत्ति की गणना करनी चाहिए और फिर लंबाई संख्या की एक सरणी लौटानी चाहिए जिसमें संख्या घटती आवृत्तियों के अनुसार सबसे अधिक बार आने वाले शब्द हों।
उदाहरण के लिए -
यदि इनपुट वाक्य और संख्या है -
const str = 'i am a good coder and i know that i can solve a problem'; const num = 2;
तब आउटपुट होना चाहिए -
const output = ['i', 'a'];
क्योंकि 'i' 3 बार प्रकट होता है जबकि 'a' सरणी में 2 बार प्रकट होता है और वे स्ट्रिंग में 2 सबसे अधिक बार आने वाले शब्द हैं।
उदाहरण
इसके लिए कोड होगा -
const str = 'i am a good coder and i know that i can solve a problem'; const num = 2; const findMostFrequent = (str = '', num = 1) => { const strArr = str.split(' '); const map = {}; strArr.forEach(word => { if(map.hasOwnProperty(word)){ map[word]++; }else{ map[word] = 1; } }); const frequencyArr = Object.keys(map).map(key => [key, map[key]]); frequencyArr.sort((a, b) => b[1] - a[1]); return frequencyArr.slice(0, num).map(el => el[0]); }; console.log(findMostFrequent(str, num));
आउटपुट
और कंसोल में आउटपुट होगा -
[ 'i', 'a' ]