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

如何从对象数组中筛选出与指定id数组不匹配的对象

筛选对象数组中id不在指定集合内的元素

给定两个数组:

const arr1 = [1,2,3,4];
const arr2 = [
  {id:1,name:"john"},
  {id:2,name:"james"},
  {id:3,name:"sam"},
  {id:4,name:"dani"},
  {id:5,name:"junaif"},
  {id:6,name:"david"}
];

需要筛选出arr2中id不在arr1集合内的对象,最终目标数组为:

const arr3 = [{id:5,name:"junaif"},{id:6,name:"david"}];

基础解法:filter + includes

直接用数组的filter方法遍历arr2,结合includes判断当前对象的id是否不在arr1中:

const arr3 = arr2.filter(item => !arr1.includes(item.id));

高性能优化解法(数据量大时推荐)

如果arr1元素较多,includes的查找效率会偏低(时间复杂度O(n)),可以先把arr1转为Set,利用Set.has()的O(1)查找性能提升整体效率:

const idSet = new Set(arr1);
const arr3 = arr2.filter(item => !idSet.has(item.id));

两种写法都能得到预期结果,可根据数据规模选择合适的方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 21:25:24