এই প্রশ্নের জন্য, আমরা একটি সেন্টেন্সকে ডিফাইন করছি: এমন একটি স্ট্রিং যেটিতে ইংরেজি অক্ষর ও পাঞ্চুয়েশন থাকে। এবং একটি শব্দ হচ্ছে সেটেন্সের একটি সাবস্ট্রিং যা হোয়াইটস্পেস দিয়ে জড়িত।
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি সেন্টেন্স স্ট্রিং str প্রথম আর্গুমেন্ট ও একটি সংখ্যা num دومা আর্গুমেন্ট হিসেবে নেবে। ফাংশনটি প্রথমে সेंटেন্সের প্রতিটি শব্দের ফ্রিকোয়েন্সি গণনা করবে এবং তারপর num দৈর্ঘ্যের একটি অ্যারে রিটার্ন করবে যেটিতে কম হওয়া ফ্রিকোয়েন্সি অনুযায়ী সাজানো 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' ৩ বার এবং 'a' ২ বার এসেছে এবং সেগুলো স্ট্রিংয়ের ২টি সবচেয়ে বেশি ফ്രീকোয়েন্ট শব্দ।
উদাহরণ
কোডটি নিচের মতো:
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' ]