ปัญหา
เราจำเป็นต้องเขียนฟังก์ชัน 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 ]