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

如何在JavaScript中拼接对象动态属性以获取对应值?

动态访问JavaScript对象属性的正确写法

嘿,我来帮你搞定这个问题!你遇到的核心问题是没摸透JavaScript里动态属性访问的语法规则——点号语法只能用来访问固定的属性名,而存在变量里的动态属性名,必须用方括号语法来处理。

正确写法直接看这里:

假设你已经定义了var curr = "games",那正确的访问方式是:

dataObj[0][curr].Value

举个完整示例帮你理解:

比如你的dataObj结构大概是这样的:

const dataObj = [
  {
    games: { Value: "《艾尔登法环》" },
    music: { Value: "《晴天》" }
  }
];

const curr = "games";
// 正确获取目标值
const targetValue = dataObj[0][curr].Value;
console.log(targetValue); // 输出:《艾尔登法环》

为什么你之前的写法无效?

  • dataObj[0].+curr+.Value:这是纯粹的语法错误,JavaScript里根本没有把变量和点号这么拼接的写法
  • dataObj[0].[curr].Value:方括号前面多了个多余的点号,正确结构是对象[动态属性],不需要在方括号前额外加点
  • dataObj[0].+"'"+curr+"'"+.Value:同样是语法错误,这种字符串拼接的方式完全不适用于属性访问场景

拓展:如果需要拼接属性名怎么办?

要是你的动态属性名需要通过变量拼接生成,比如想访问games_2024这个属性,也可以直接在方括号里完成拼接:

const curr = "games";
const year = "2024";
const targetValue = dataObj[0][curr + "_" + year].Value;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:46:33