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

如何使用JavaScript的filter方法按指定字段筛选对象数组的匹配项

filter方法实现对象数组匹配过滤

实现逻辑

  • 遍历第二个数组arr2的每一项,校验当前项的id字段值是否在arr1的prid字段值集合中,匹配成功则保留
  • 小数据量场景可直接用filter+some组合实现
  • 大数据量场景建议先提取prid为Set集合优化查找性能

基础实现(小数据量适用)

const filtered = arr2.filter(item2 => {
  // 检查arr1中是否存在prid和当前arr2项的id相等的元素
  return arr1.some(item1 => item1.prid === item2.id)
})

注:你给出的预期结果存在重复项错误,按提供的示例数组实际运行后得到的结果为:[{name:'kiwi', color:'red', id:12123}, {name:'kiwi3', color:'green',id:12124}]

优化实现(大数据量适用)

提前提取arr1的prid值为Set集合,将单次查找的时间复杂度从O(n)降低到O(1),避免多次遍历arr1:

// 提取所有prid到Set集合
const pridSet = new Set(arr1.map(item => item.prid))
const filtered = arr2.filter(item => pridSet.has(item.id))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 09:00:00