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

JavaScript循环中访问JSON数据出现undefined的解决方法

循环中动态访问对象属性的正确方法

你代码里出现undefined的原因是:使用点语法(.)访问属性时,list.pinName会被解析为访问对象中名为pinName的固定属性,但你的list对象里并没有这个属性,所以返回undefined。

要通过变量动态生成属性名并访问,必须使用方括号语法,修改后的代码如下:

var list = {
  macAddress: 'C0:49:EF:D3:79:20',
  category: 'esd',
  dr1: 1,
  dr2: 1,
  dr3: 0,
  dr4: 0
}

console.log(list);

for(var i=1; i<=2; i++) {
  var pinName = "dr" + i;
  
  // 用方括号语法传入变量,动态访问属性
  console.log(list[pinName]);
}

两种属性访问方式的区别:

  • 点语法:只能直接写固定的属性名,比如list.dr1,适合属性名明确固定的场景。
  • 方括号语法:可以传入变量、字符串甚至表达式,能动态计算出要访问的属性名,完美适配你循环中根据i生成属性名的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 03:35:26