You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从对象数组中根据id删除单个对象?

问题解决:根据ID删除数组对象

报错翻译

未捕获的类型错误:无法读取未定义的属性(读取'findIndex')

错误原因

你写的myArray.value是错误用法——myArray是直接声明的普通数组,根本没有value属性,直接调用myArray.findIndex()即可。而且当前代码仅完成了查找索引的操作,并未执行实际删除逻辑。

两种可行实现方案

方案一:直接修改原数组(使用splice)

此方法会直接改动原数组myArray:

const deleteObject = (id) => {
  // 找到对应ID元素的索引
  const targetIndex = myArray.findIndex(item => item.id === id);
  // 确认找到元素后执行删除
  if (targetIndex !== -1) {
    myArray.splice(targetIndex, 1);
  }
}
deleteObject(1632881);

方案二:返回新数组(使用filter)

此方法不修改原数组,返回剔除目标元素后的新数组,适合需要保留原数组的场景:

const deleteObject = (id) => {
  return myArray.filter(item => item.id !== id);
}
// 调用时接收新数组
const filteredArray = deleteObject(1632881);

额外提示

你转换数组的代码中,header: val.HOSPITAL_GROUP_ID和date: val.CREATED_DATE对应的字段在demoObject的子对象中不存在,最终会被赋值为undefined,如果是笔误请及时修正。

内容的提问来源于stack exchange,提问作者OLA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 08:40:35