আমাদের কাছে একটি সংখ্যা/স্ট্রিং অ্যারে থাকবে যাতে কিছু ডুপ্লিকেট এন্ট্রি থাকতে পারে। আমাদের কাজ হলো অ্যারে-র প্রতিটি এলিমেন্টের ফ্রিকোয়েন্সি রিটার্ন করা।
এলিমেন্ট কী এবং তার ফ্রিকোয়েন্সি ভ্যালু হিসেবে একটি অবজেক্ট রিটার্ন করা এই পরিস্থিতিতে উপযুক্ত।
আমরা forEach() লুপ দিয়ে অ্যারে-র ওপর ইটারেট করব এবং অবজেক্ট-এ এলিমেন্টের কাউন্ট বাড়াব। যদি এলিমেন্টটি আগে থেকে থাকে না, তবে সেটির জন্য নতুন প্রপার্টি তৈরি করব।
শেষে অবজেক্টটি রিটার্ন করব।
সমস্যা সমাধানের জন্য পুরো কোড নিচে দেওয়া হলো −
const arr = [2,5,7,8,5,3,5,7,8,5,3,4,2,4,2,1,6,8,6]; const getFrequency = (array) => { const map = {}; array.forEach(item => { if(map[item]){ map[item]++; }else{ map[item] = 1; } }); return map; }; console.log(getFrequency(arr));কনসোলে আউটপুট হবে −
{ '1': 1, '2': 3, '3': 2, '4': 2, '5': 4, '6': 2, '7': 2, '8': 3 }