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

如何找出对象数组中ID不在指定数组内的元素?

如何筛选对象数组中ID不在指定数组中的元素?

给定目标ID数组:

[60, 1456]

以及对象数组:

[
  {id: 60, itemName: 'Main Location - Cleveland'},
  {id: 1453, itemName: 'Second Location - Cleveland'},
  {id: 1456, itemName: 'Third Location - New York'}
]

解决方案

可以通过Set优化查找效率结合数组filter方法快速筛选出不匹配的元素,步骤如下:

  1. 将目标ID数组转换为Set结构——Set的has()方法查找时间复杂度为O(1),比数组includes()的O(n)更高效,尤其适合数据量较大的场景。
  2. 使用filter遍历对象数组,保留那些id不在Set中的元素。

代码实现

const targetIds = [60, 1456];
const locationItems = [
  {id: 60, itemName: 'Main Location - Cleveland'},
  {id: 1453, itemName: 'Second Location - Cleveland'},
  {id: 1456, itemName: 'Third Location - New York'}
];

// 转换为Set提升查找性能
const idSet = new Set(targetIds);
// 筛选出ID不匹配的元素
const mismatchedItems = locationItems.filter(item => !idSet.has(item.id));

console.log(mismatchedItems);
// 输出结果:[{id: 1453, itemName: 'Second Location - Cleveland'}]

简化版(数据量小时可用)

如果处理的数据量很小,也可以直接用数组的includes()方法省略Set转换:

const mismatchedItems = locationItems.filter(item => !targetIds.includes(item.id));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 06:23:20