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

如何从对象数组中过滤并提取符合条件的对象ID

简洁实现过滤数组并提取符合条件的ID列表

直接用 filter() + map() 的链式调用就能一步搞定,这是最直观优雅的写法:

const validIds = data.filter(item => item.canAcceptRecruits).map(item => item.id);
console.log(validIds); // 输出 [1, 2, 50]

先通过 filter() 筛选出 canAcceptRecruits 为 true 的对象,紧接着用 map() 把每个符合条件的对象转换成对应的 id,直接得到目标ID数组。

如果想用 reduce() 实现,也能在一次遍历中完成过滤和提取(适合关注遍历次数的场景,小规模数组性能差异可忽略):

const validIds = data.reduce((acc, item) => {
  item.canAcceptRecruits && acc.push(item.id);
  return acc;
}, []);
console.log(validIds); // 输出 [1, 2, 50]

这里用 reduce() 的累加器作为结果数组,遍历每个元素时,若符合条件就把 id 推入累加器,最后返回这个数组即可。

两种写法里,filter()+map() 的可读性更强,日常开发更推荐;reduce() 则是另一种简洁的实现方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 19:43:07