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

JavaScript中如何从对象数组筛选出指定ID集合的新数组?

筛选ID匹配的数组对象

基础实现

直接利用数组的filter方法结合includes判断,写法简洁直观:

const availAbleData = [{id:1,name:'user1'},{id:2,name:'user2'},{id:3,name:'user3'},{id:4,name:'user5'},{id:5,name:'user5'},{id:6,name:'user6'}];
const selectedIds=[1,2,3,4];

// 筛选id在selectedIds中的对象
const filteredData = availAbleData.filter(item => selectedIds.includes(item.id));

console.log(filteredData);
// 输出结果:
// [{id:1,name:'user1'},{id:2,name:'user2'},{id:3,name:'user3'},{id:4,name:'user5'}]

性能优化方案

如果selectedIds数组元素较多,推荐先把它转换成Set——因为Set的has方法查找时间复杂度是O(1),比数组includes的O(n)效率更高:

const availAbleData = [{id:1,name:'user1'},{id:2,name:'user2'},{id:3,name:'user3'},{id:4,name:'user5'},{id:5,name:'user5'},{id:6,name:'user6'}];
const selectedIds=[1,2,3,4];

// 转换为Set提升查找性能
const idSet = new Set(selectedIds);
const filteredData = availAbleData.filter(item => idSet.has(item.id));

console.log(filteredData);
// 输出结果与基础实现一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 15:05:20