সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি পূর্ণসংখ্যার অ্যারে arr (যে ডুপ্লিকেট থাকতে পারে) প্রথম আর্গুমেন্ট এবং একটি সংখ্যা num দ্বিতীয় ও চূড়ান্ত আর্গুমেন্ট হিসেবে নেবে।
ফাংশনটির কাজ হল অ্যারেটি ইটারেট করে চেক করা যে কোনো সংখ্যা n-বার से বেশি হয়েছে কিনা।
যদি এমন কোনো উপাদান থাকে, তবে তার অতিরিক্ত ঘটনাগুলো মুছে দিয়ে তার ঘটনাn-এ সীমাবদ্ধ করতে হবে।
উদাহরণস্বরূপ, যদি ইনপুট হয় –
ইনপুট
const arr = [4, 1, 3, 1, 4, 1, 3, 4, 2]; const num = 2;
আউটপুট
const output = [4, 1, 3, 1, 4, 3, 2];
আউটপুট ব্যাখ্যা
৪ এবং ১ তিনবার করেই এসেছে, তাই তাদের তৃতীয় ঘটনা মুছে দেওয়া হল।
উদাহরণ
নিচে কোডটি দেওয়া হল –
const arr = [4, 1, 3, 1, 4, 1, 3, 4, 2];
const num = 2;
const deleteExtra = (arr = [], num = 1) => {
if (num === 0) {
return [];
}
const res = [];
const map = {};
for (let i = 0; i < arr.length; i++) {
const el = arr[i];
map[el] = (map[el] || 0) + 1;
if (map[el] <= num) {
res.push(el);
}
}
return res;
};
console.log(deleteExtra(arr, num));
আউটপুট
[4, 1, 3, 1, 4, 3, 2]