ต่อไปนี้คือตัวอย่างโค้ดที่สาธิตวิธีการลบรายการที่ซ้ำกันออกจากอาร์เรย์ของออบเจ็กต์:
const originalArray = [ { id: 1, name: 'Anil' }, { id: 2, name: 'Anil' }, { id: 3, name: 'Pankaj' }, { id: 4, name: 'Pradeep' }, { id: 5, name: 'Pankaj' } ]; const newArray = originalArray.filter((obj, index, arr) => { return arr.map(mapObj => mapObj.name).indexOf(obj.name) === index; }); console.log(newArray); // Output: [{ id: 1, name: 'Anil' }, { id: 3, name: 'Pankaj' }, { id: 4, name: 'Pradeep' }]
ในโค้ดนี้ ขั้นแรกเราจะสร้างอาร์เรย์ของอ็อบเจ็กต์ที่มีการซ้ำกันบางส่วน จากนั้น เราใช้เมธอด filter()
ในอาร์เรย์นี้เพื่อส่งคืนอาร์เรย์ใหม่ที่มีเฉพาะการเกิดขึ้นครั้งแรกของแต่ละอ็อบเจ็กต์ที่มีคุณสมบัติชื่อเฉพาะ
เราใช้เมธอด map()
เพื่อสร้างอาร์เรย์ใหม่ที่มีเฉพาะคุณสมบัติชื่อของแต่ละวัตถุ จากนั้น เราใช้เมธอด indexOf()
เพื่อตรวจสอบว่าคุณสมบัติชื่อของวัตถุปัจจุบันเป็นชื่อที่ปรากฏครั้งแรกในอาร์เรย์ใหม่หรือไม่ หากเป็นเช่นนั้น เมธอด filter()
จะรวมอ็อบเจ็กต์ไว้ในอาร์เรย์ใหม่ด้วย