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

Typescript中如何判断对象数组属性值是否存在于另一数组中

Typescript数组匹配筛选实现方案

你可以根据数据量大小选择以下两种实现方式:

方案1:适合小数据量场景

直接使用数组自带的filter+includes方法,代码最简:

// 直接过滤出productId存在于proposalProducts的元素
const matchedResult = searchFilteredData.filter(item => 
  proposalProducts.includes(item.productId)
);

方案2:适合大数据量场景

如果proposalProducts元素较多,先转成Set再查询可以大幅提升性能,时间复杂度从O(n*m)降到O(n+m):

// 先将productId集合转为Set,查询效率更高
const proposalIdSet = new Set(proposalProducts);
const matchedResult = searchFilteredData.filter(item => 
  proposalIdSet.has(item.productId)
);

补充类型说明

如果需要严格的TS类型校验,可以提前给两个数组定义类型:

interface ProductItem {
  productId: number;
  carrierId: number;
  // 其余自定义字段
}
const searchFilteredData: ProductItem[] = [];
const proposalProducts: number[] = [];

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 08:54:02