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

如何用lodash或原生JS过滤对象数组,判断属性值是否存在于另一数组

过滤功能实现方案

Lodash 实现

你可以给_.filter传入自定义回调函数组合多过滤条件,示例代码如下:

// 提前定义要匹配的property2参考数组
const checkList = [val1, val2, val3];
let res = _.filter(array, item => {
  // 同时满足两个过滤条件
  return item.property1 === "somevalue" && _.includes(checkList, item.property2);
});

如果你偏好类匹配器的写法,也可以用_.overEvery组合内置匹配规则:

const checkList = [val1, val2, val3];
let res = _.filter(array, _.overEvery([
  _.matches({property1: "somevalue"}),
  item => _.includes(checkList, item.property2)
]));

原生JavaScript实现

不需要引入第三方库,直接用原生Array.prototype.filter即可实现,数据量大时建议转Set优化查询性能:

const checkList = [val1, val2, val3];
// 转Set后存在性判断时间复杂度从O(n)降到O(1),性能更优
const checkSet = new Set(checkList);
let res = array.filter(item => {
  return item.property1 === "somevalue" && checkSet.has(item.property2);
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 05:09:03