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

如何通过对象属性值获取数组中对象的另一属性值

通过对象属性值获取对应属性的方法

你提到的objArray.car['BMW'].price写法直接用不了,因为objArray是数组,本身没有car这个属性,只有数组里的每个元素才是包含car和price的对象。不过可以通过下面两种方式实现需求:

方法一:转换为映射对象(适合多次查询的场景)

先把原数组转换成以car为键的映射对象,之后就能像你期望的那样快速访问:

// 仅映射car和price的对应关系
const carPriceMap = objArray.reduce((map, item) => {
  map[item.car] = item.price;
  return map;
}, {});

// 直接通过car名称取price
console.log(carPriceMap['BMW']); // 输出 2000
console.log(carPriceMap.VW); // 输出 3500

如果需要保留完整的对象(后续可能用到其他属性),可以这样转换:

const carObjMap = objArray.reduce((map, item) => {
  map[item.car] = item;
  return map;
}, {});

// 此时写法就和你预想的很接近了
console.log(carObjMap['BMW'].price); // 输出 2000

方法二:直接用数组find方法(适合单次查询)

如果只是偶尔查询一次,直接用数组的find方法定位目标对象即可:

// 找到car为BMW的对象后取price,可选链避免找不到时报错
const bmwPrice = objArray.find(item => item.car === 'BMW')?.price;
console.log(bmwPrice); // 输出 2000

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 02:05:00