此问题在此处已有答案:
Dynamically access object property using variable(17个答案)
11天前关闭。
所以我试着只打印出年份数据,因为我想对它执行一些函数。q变量来自一个html表单,所以我们不知道用户将决定q的值是多少:
第一个
此问题在此处已有答案:
Dynamically access object property using variable(17个答案)
11天前关闭。
所以我试着只打印出年份数据,因为我想对它执行一些函数。q变量来自一个html表单,所以我们不知道用户将决定q的值是多少:
第一个
2条答案
按热度按时间okxuctiv1#
从link I've added in the comment
qqrboqgw2#
下面是你的片段修复:
你的代码不起作用的原因是,在循环的每次迭代中,你的代码都在过滤数组的每个对象中寻找一个名为
q
的属性,而不是你想要的filtered[i]."Year"
。这无论如何都不会像你想要的那样起作用,因为这里的字符串是语法错误。据我所知,唯一将变量插入到对象属性调用的方法是使用
[]
表示法,它接受一个字符串来指向对象属性。因此,在前面代码片段中的每次循环迭代中,实际读取的是filtered[i]["year"]
,这是有效的语法。现在这是可行的,但是如果对象在您的控件中,我建议您坚持使用不需要
[]
语法的属性名称,事实上,您在示例中不需要这样做。此外,您可以使代码更可读。请考虑以下代码片段:在此范例中,您可以直接在循环中呼叫属性,以移除
[]
属性呼叫语法的需求,并将"year"
字串储存在变数中。此外,与那些古老的
for (i, condition, iteration)
循环相反,您有一个更可读的for...of
循环语句来定位数组中的每个对象。如果你不太喜欢
var
或const / let
,我会坚持一直使用const / let
,因为它更符合“现代”JavaScript。要了解这里所讨论的任何内容,MDN(一如既往)是学习任何Web开发的最佳起点。这里有一些有用的链接,与这里所讨论的内容相关:
希望这对你有帮助。