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

如何在JavaScript中检查对象数组的code值是否存在于另一对象数组

检查数组对象的code是否存在于另一数组中

你的代码返回false是因为JavaScript中对象是引用类型,arr2.includes(item)判断的是两个对象是否是同一个内存引用,而不是它们的内容是否相等。哪怕两个对象的code和name完全一致,只要不是同一个对象实例,includes就会返回false。

下面是两种可行的实现方式:

方法一:利用Set优化查找效率

先把第二个数组的所有code提取到一个Set中,再遍历第一个数组检查每个对象的code是否存在于这个Set里。这种方式的时间复杂度是O(n+m),适合处理大数据量的数组。

const arr1 = [{code: 'a', name: 'x'}];
const arr2 = [{code: 'a', name: 'x'}, {code: 'b', name: 'y'}];

// 提取arr2中所有对象的code,存入Set
const arr2CodeSet = new Set(arr2.map(item => item.code));
// 检查arr1的每个对象的code是否都在Set中
const isAllExist = arr1.every(item => arr2CodeSet.has(item.code));

console.log(isAllExist); // 输出: true

方法二:使用every + some直接匹配

如果数组规模不大,也可以直接用every结合some,逐个检查第一个数组的对象是否能在第二个数组中找到code匹配的项。时间复杂度是O(n*m),小数据量下足够用。

const arr1 = [{code: 'a', name: 'x'}];
const arr2 = [{code: 'a', name: 'x'}, {code: 'b', name: 'y'}];

const isAllExist = arr1.every(item1 => arr2.some(item2 => item2.code === item1.code));

console.log(isAllExist); // 输出: true

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 00:39:17