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

如何在JavaScript嵌套对象数组中查找指定id的索引并删除对应元素

问题原因
  • Array.forEach() 方法本身没有返回值,你尝试用它接收findIndex的返回值,自然只能拿到undefined
  • 即使拿到了索引,你直接对所有dish的foodItems执行splice操作逻辑错误:ID唯一对应某一个菜系下的菜品,直接删除所有菜系对应下标的元素会出现误删
正确实现代码
const removeId = (targetId) => {
  // 遍历所有菜系分类
  for (const dish of dishes) {
    // 查找当前分类下是否有匹配ID的菜品
    const targetIndex = dish.foodItems.findIndex(item => item.id === targetId)
    // 找到匹配项后删除,直接返回结果
    if (targetIndex !== -1) {
      dish.foodItems.splice(targetIndex, 1)
      return true
    }
  }
  // 所有分类下都没有找到对应ID的菜品
  return false
}
使用示例
console.log(removeId('2')) // 返回true,中餐分类下的Fried rice被移除
console.log(removeId('999')) // 返回false,无匹配ID的菜品

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 22:45:00