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

如何从两个对象数组中基于ID筛选出唯一对象?

解决方法

可以通过以下步骤实现需求:

  1. 提取cuisines数组中所有对象的id,存入一个Set集合(集合的查找效率比数组更高)
  2. 使用数组的filter方法遍历selected数组,筛选出cuisine_id不在上述集合中的元素

具体代码如下:

const cuisines = [
  { id: 1, name: 'a' },
  { id: 2, name: 'b' }
];
const selected = [
  { cuisine_id: 1, id: 11},
  { cuisine_id: 2, id: 22},
  { cuisine_id: 3, id: 33 },
];

// 提取cuisines的id集合
const cuisineIds = new Set(cuisines.map(item => item.id));
// 筛选出目标唯一对象
const uniqueItems = selected.filter(item => !cuisineIds.has(item.cuisine_id));

console.log(uniqueItems); // 输出: [{ cuisine_id: 3, id: 33 }]

补充说明:

  • 使用Set而非数组存储id,是因为Set.has()的时间复杂度为O(1),比数组的includes()(O(n))效率更高,数据量较大时差异会更明显
  • filter方法会返回一个新数组,不会修改原有的selected数组

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 08:02:04