সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা প্রথম আর্গুমেন্ট হিসাবে ইংরেজি ছোট হাতের বর্ণমালার একটি অ্যারে, অ্যার, স্ট্রিং নেয়। আমাদের ফাংশনের দ্বিতীয় আর্গুমেন্ট হল একটি সংখ্যা, num (num
আমাদের ফাংশন অ্যারে অ্যারের মধ্যে সবচেয়ে ঘন ঘন উপাদানের সংখ্যা ফেরত দেওয়ার কথা।
উত্তরটি সর্বোচ্চ থেকে সর্বনিম্ন পর্যন্ত ফ্রিকোয়েন্সি অনুসারে সাজানো উচিত। যদি দুটি শব্দের একই ফ্রিকোয়েন্সি থাকে, তাহলে নিচের বর্ণানুক্রমিক শব্দটি প্রথমে আসে।
উদাহরণস্বরূপ, যদি ফাংশনে ইনপুট হয়
ইনপুট
const arr = ["the", "day", "is", "sunny", "the", "the", "the", "sunny", "is", "is"]; const num = 4;
আউটপুট
const output = ["the", "is", "sunny", "day"];
আউটপুট ব্যাখ্যা
"the", "is", "sunny" এবং "day" হল চারটি সর্বাধিক ঘন ঘন শব্দ,
ঘটনার সংখ্যা যথাক্রমে 4, 3, 2 এবং 1।
উদাহরণ
নিম্নলিখিত কোড -
const arr = ["the", "day", "is", "sunny", "the", "the", "the", "sunny", "is", "is"]; const num = 4; const mostFrequent = (arr = [], num = 1) => { const map = {}; let keys = []; for (let i = 0; i < arr.length; i++) { if (map[arr[i]]) { map[arr[i]]++; } else { map[arr[i]] = 1; } } for (let i in map) { keys.push(i); } keys = keys.sort((a, b) => { if (map[a] === map[b]) { if (a > b) { return 1; } else { return -1; } } else { return map[b] - map[a]; } }) .slice(0, num); return keys; }; console.log(mostFrequent(arr, num));
আউটপুট
[ 'the', 'is', 'sunny', 'day' ]