সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা প্রথম আর্গুমেন্ট হিসেবে একটি সংখ্যার অ্যারে এবং দ্বিতীয় আর্গুমেন্ট হিসেবে একটি সংখ্যা নেয়।
ফাংশনটি অ্যারেতে থেকে উপাদান মুছে ফেলবে যাতে ফলাফল অ্যারেতে কোনো উপাদান নির্দিষ্ট সংখ্যা (দ্বিতীয় আর্গুমেন্ট) এর বেশি বার দেখা যায় না।
উদাহরণ
নিচের কোডটি দেখুন:
const arr = [4, 2, 3, 2, 4, 2, 2, 4];
const num = 2;
const deleteExcess = (arr = [], num = 1) => {
const map = {};
for (let i = 0; i < arr.length; i++) {
if (!map[arr[i]]) {
map[arr[i]] = 1;
} else if (map[arr[i]] + 1 <= num) {
map[arr[i]]++
}
}
const res = [];
Object.keys(map).forEach(key => {
for (i = 0; i < map[key]; i++) {
res.push(key);
}
});
return res.map(Number);
};
console.log(deleteExcess(arr, num));
আউটপুট
[ 2, 2, 3, 4, 4 ]