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

如何同时匹配id与value键值后删除数组中对应的对象

错误原因

你原有代码失效的核心原因是 Array.indexOf() 的使用逻辑不符合需求:该方法只能匹配完全相等的基本类型值、或是引用地址完全一致的对象,且第二个参数代表的是查找的起始下标,并不是你需要的匹配条件,自然无法定位到同时满足id和value匹配的数组项。


解决方案

方案1:生成新数组(推荐,无副作用)

使用Array.filter()过滤数组,直接保留所有不满足匹配条件的项即可:

// 你从复选框拿到的目标id和value
const targetId = 146
const targetValue = '$ 679.200'

// 过滤后得到的新数组就是处理后的结果
obj = obj.filter(item => !(item.id === targetId && item.value === targetValue))

方案2:操作原数组

如果业务要求必须修改原数组而非生成新数组,使用Array.findIndex()定位符合条件的下标再删除即可,注意要加下标合法性判断,避免未匹配到对应项时误删其他元素:

const targetId = 146
const targetValue = '$ 679.200'

const matchIndex = obj.findIndex(item => item.id === targetId && item.value === targetValue)
if (matchIndex !== -1) {
  obj.splice(matchIndex, 1)
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 08:00:02