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

JavaScript如何根据数组元素在对象数组中查找匹配对象

代码实现方案

首先先修正你给出的原始代码里的语法错误:

  • 第二个数组重复命名为array1,实际应为array2 = [3,4]
  • 每个对象里的age属性后多打了一个冒号,不符合JS语法
  • 你贴的预期结果里array2的内容和array1完全重复,常规匹配逻辑下应该对应值为3、4的对象条目,下面的实现先按「数组元素匹配对象a属性值」的通用逻辑编写,如果你确实需要array2返回和array1相同的结果,调整下筛选条件就行。

具体实现用数组filter方法搭配includes判断即可,代码如下:

// 基础数据定义(修正语法错误后)
const array1 = [1, 2]
const array2 = [3, 4]

const arrayOfObj = [
  {a: 1, age: 20, name: 'Thomas'},
  {a: 2, age: 14, name: 'Farida'},
  {a: 3, age: 35, name: 'James'},
  {a: 4, age: 67, name: 'Hellen'},
]

// 筛选匹配逻辑
const res1 = arrayOfObj.filter(item => array1.includes(item.a))
const res2 = arrayOfObj.filter(item => array2.includes(item.a))

运行后得到的返回结果:

// res1 对应array1的匹配结果
[
  {a:1, age: 20, name: 'Thomas'},
  {a:2, age: 14, name: 'Farida'}
]

// res2 对应array2的匹配结果
[
  {a:3, age: 35, name: 'James'},
  {a:4, age: 67, name: 'Hellen'}
]

要是你需要array2返回和你示例里一样的和array1相同的内容,只需要把res2的筛选条件改成array1.includes(item.a)就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 06:27:24