Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

การค้นหาและลบออบเจกต์จาก JSON Array ตาม id ใน JavaScript

สมมติเรามีอาร์เรย์ของออบเจกต์ที่มีข้อมูลหนังสือแบบนี้:

const arr = [
  {id: "1", name: "Snatch", type: "crime"},
  {id: "2", name: "Witches of Eastwick", type: "comedy"},
  {id: "3", name: "X-Men", type: "action"},
  {id: "4", name: "Ordinary People", type: "drama"},
  {id: "5", name: "Billy Elliot", type: "drama"},
  {id: "6", name: "Toy Story", type: "children"}
];

เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์แบบนี้เป็นอาร์กิวเมนต์แรก และสตริง id เป็นอาร์กิวเมนต์ที่สอง ฟังก์ชันควรค้นหาออบเจกต์ด้วย id นั้น และถ้าอาร์เรย์มีออบเจกต์นั้น ให้ลบออกจากอาร์เรย์

ตัวอย่างโค้ด

const arr = [
  {id: "1", name: "Snatch", type: "crime"},
  {id: "2", name: "Witches of Eastwick", type: "comedy"},
  {id: "3", name: "X-Men", type: "action"},
  {id: "4", name: "Ordinary People", type: "drama"},
  {id: "5", name: "Billy Elliot", type: "drama"},
  {id: "6", name: "Toy Story", type: "children"}
];
const removeById = (arr, id) => {
  const requiredIndex = arr.findIndex(el => {
    return el.id === String(id);
  });
  if(requiredIndex === -1){
    return false;
  };
  return !!arr.splice(requiredIndex, 1);
};
removeById(arr, 5);
console.log(arr);

ผลลัพธ์

ผลลัพธ์ที่แสดงในคอนโซลจะเป็นดังนี้:

[
  { id: '1', name: 'Snatch', type: 'crime' },
  { id: '2', name: 'Witches of Eastwick', type: 'comedy' },
  { id: '3', name: 'X-Men', type: 'action' },
  { id: '4', name: 'Ordinary People', type: 'drama' },
  { id: '6', name: 'Toy Story', type: 'children' }
]