ปัญหา
เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของจำนวนเต็ม arr ที่อาจซ้ำซ้อนเป็นอาร์กิวเมนต์แรก และตัวเลข num เป็นอาร์กิวเมนต์ที่สองและสุดท้าย
หน้าที่ของฟังก์ชันของเราคือวนซ้ำผ่านอาร์เรย์และตรวจสอบว่ามีบางตัวเลขที่ปรากฏมากกว่า n ครั้งในอาร์เรย์หรือไม่
หากมีองค์ประกอบดังกล่าวอยู่ เราควรลบการเกิดขึ้นเพิ่มเติมเพื่อจำกัดการเกิดขึ้นขององค์ประกอบดังกล่าวให้มากที่สุด num
ตัวอย่างเช่น หากอินพุตของฟังก์ชันคือ −
ป้อนข้อมูล
const arr = [4, 1, 3, 1, 4, 1, 3, 4, 2]; const num = 2;
ผลผลิต
const output = [4, 1, 3, 1, 4, 3, 2];
คำอธิบายผลลัพธ์
ทั้ง 4 และ 1 ปรากฏตัวสามครั้ง ดังนั้นการปรากฏตัวครั้งที่สามจึงถูกลบ
ตัวอย่าง
ต่อไปนี้เป็นรหัส -
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 ]