如何使用匹配key删除对象列表对应项,仅保留未匹配数据
实现方案
核心逻辑
- 先将待删除的id列表统一做类型转换(你提供的代码里
selectedRow存的是字符串格式id,原数组id是数字类型,避免类型不匹配导致匹配失效),存入Set结构可以把查找效率提升到O(1) - 用数组的
filter方法遍历对象列表,仅保留id不在删除集合中的项
可运行代码
let selectedRow = ["1","2"]; // 示例为删除id为1、2的项,可按需修改 let arr = [ { id:1, name:"eddie" }, { id:2, name:"jake" }, { id:3, name:"susan" }, ]; // 转成数字类型的Set集合 const toDeleteIds = new Set(selectedRow.map(Number)); // 过滤得到结果 const result = arr.filter(item => !toDeleteIds.has(item.id)); console.log(result); // 输出:[{ id: 3, name: 'susan' }]
注意点
如果你的selectedRow实际是需要保留的id列表,把filter判断里的取反符!删掉即可。
内容的提问来源于stack exchange,提问作者Eddie
相关产品推荐
相关产品推荐

