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

如何根据纯id数组从对象数组中筛选匹配元素生成新对象数组

代码实现

首先修正原id数组的格式错误:原数组最后一个元素混用了单双引号,需要统一为双引号才能正常运行。

// 修正后的id数组
const targetIds = ["111","114","117"];
// 待匹配的源对象数组
const sourceData = [
  { id: "111", Name: "Jerry" },
  { id: "112", Name: "Tom" },
  { id: "113", Name: "Mouse" },
  { id: "114", Name: "Minny" },
  { id: "115", Name: "Mayavi" },
  { id: "116", Name: "Kuttoosan" },
  { id: "117", Name: "Raju" }
];

小数据量场景实现

如果源数组和id数组长度都不大,直接用filter+includes组合即可:

const filteredResult = sourceData.filter(item => targetIds.includes(item.id));

大数据量场景优化实现

如果数据量超过千级,建议先把id数组转为Set实例,把查询时间复杂度从O(n)降到O(1),提升运行效率:

const idSet = new Set(targetIds);
const filteredResult = sourceData.filter(item => idSet.has(item.id));

运行后得到的filteredResult就是要求的输出结果:

[
  { id: "111", Name: "Jerry" },
  { id: "114", Name: "Minny" },
  { id: "117", Name: "Raju" }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 15:06:00