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

如何通过动态键访问JSON对象数组中的目标值?

解决JavaScript动态访问对象属性的问题

你的问题出在对象属性的访问方式上:用点语法(.)的时候,后面的名称会被当作字面量的键名,而不是变量的值。所以arr[num-1].num_name其实是在找键名为num_name的属性,而不是num变量拼接出来的s2,自然拿不到想要的值。

正确的做法是用方括号语法来访问动态键名,把变量放在方括号里:

var arr = [ {"s1" : [1,2,3]}, {"s2" : [4,5,6]} ];
var num = 2;
var num_name = "s" + num;
// 用方括号包裹变量num_name
var output = arr[num-1][num_name];
console.log(output); // 输出 [4,5,6]

简单总结两种访问方式的区别:

  • 点语法:适合键名是固定字符串的场景,比如obj.s1
  • 方括号语法:支持动态键名(变量、表达式),比如obj["s"+num]或者obj[num_name]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 00:01:05