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

如何通过预定义变量访问嵌套对象数组中的指定属性?

解决通过变量访问数组对象指定属性返回undefined的问题

你的代码存在两个关键问题,导致控制台输出全为undefined,修正后即可正常获取年份数据:

1. 变量名拼写错误

你定义的数组变量是filtered,但循环里误写为filterd(少了字母'e')。先将变量名修正为一致的filtered,确保能正确访问目标数组。

2. 属性访问方式错误

当属性名存储在变量中时,不能使用.点语法——点语法会把后面的标识符当作字面量属性名(即去查找对象里名为q的属性,而你的对象中并没有这个属性,所以返回undefined)。

正确的做法是使用方括号[]语法,方括号会解析变量的值作为属性名去匹配对象中的对应字段。

修正后的完整代码

const filtered = [
  { Year: '2019', score1: 88 },
  { Year: '2020', score1: 89 },
  { Year: '2021', score1: 90 },
  { Year: '2022', score1: 91 },
  { Year: '2023', score1: 92 },
  { Year: '2023', score1: 100 }
];

var q = "Year";
for (let i = 0; i < filtered.length; i++) {
  console.log(filtered[i][q]);
}

输出结果

2019
2020
2021
2022
2023
2023

简化写法(可选)

如果想让代码更简洁,可使用forEach遍历数组:

filtered.forEach(item => console.log(item[q]));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 00:55:14