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

JS新手求助:匹配对象数组与值数组并获取对应值

JavaScript数组匹配:从对象数组中提取目标值

当然可以实现你想要的结果!咱们直接看怎么操作:

首先先明确你的输入:

var jsObjects = [ {a: 1, b: 2}, {a: 3, b: 4}, {a: 5, b: 6}, {a: 7, b: 8} ];
var myArray = [4,6,8];

咱们的需求是:找到jsObjects里所有b属性值在myArray中的对象,然后提取它们的a属性值,最终得到[3,5,7]。

方法1:filter + map 组合(直观易懂)

这是最常用的写法,逻辑清晰,适合大多数场景:

const result = jsObjects
  // 第一步:筛选出b值存在于myArray中的对象
  .filter(obj => myArray.includes(obj.b))
  // 第二步:把筛选后的对象转换成对应的a属性值
  .map(obj => obj.a);

console.log(result); // 输出:[3,5,7]

方法2:性能优化版(适合大数组场景)

如果你的数组数据量很大,myArray.includes()的查找效率会有点低,这时候可以把myArray转成Set,查找速度会提升很多:

// 先把myArray转成Set,提升查找性能
const myValueSet = new Set(myArray);

const result = jsObjects
  .filter(obj => myValueSet.has(obj.b))
  .map(obj => obj.a);

console.log(result); // 同样输出:[3,5,7]

两种方法都能完美得到你想要的结果,根据你的实际场景选就行~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:17:45