เรามีอาร์เรย์ของตัวอักษร Number/String ที่มีบางรายการที่ซ้ำกัน งานของเราคือการเขียนฟังก์ชันที่ใช้จำนวนเต็มบวกจำนวน n และส่งคืนอาร์เรย์ย่อยขององค์ประกอบทั้งหมดที่ทำให้ปรากฏมากกว่าหรือเท่ากับจำนวน n ที่ระบุโดยอาร์กิวเมนต์เท่านั้น
ดังนั้น เรามาเขียนโค้ดสำหรับฟังก์ชันนี้กัน −
เราจะใช้ Map() เพื่อนับความถี่ขององค์ประกอบและส่งคืนองค์ประกอบที่เกินจำนวนที่ระบุในภายหลัง รหัสสำหรับสิ่งนี้จะเป็น −
ตัวอย่าง
const arr = [34, 6, 34, 8, 54, 7, 87, 23, 34, 6, 21, 6, 23, 4, 23]; const moreThan = (arr, num) => { const creds = arr.reduce((acc, val) => { let { map, res } = acc; const count = map.get(val); if(!count && typeof count !== 'number'){ map.set(val, 1); }else if(num - count <= 1){ res.push(val); } else { map.set(val, count+1); }; return {map, res}; }, { map: new Map(), res: [] }); return creds.res; }; console.log(moreThan(arr, 3));
ผลลัพธ์
ผลลัพธ์ในคอนโซลจะเป็น -
[34, 6, 23]