如何连接(变量+对象键名)以点表示法获取对象值[重复]

Posted

技术标签:

【中文标题】如何连接(变量+对象键名)以点表示法获取对象值[重复]【英文标题】:how to concatenate (variable + object key names) to get the object values in dot notation [duplicate] 【发布时间】:2017-03-26 15:23:33 【问题描述】:

假设我有一个这样的 JSON 对象:

var myObj = 
    'question1': 
        'option1': 'foo',
        'option2': 'bar',
        'option3': 'baz'
    ,
    'question2': 
        ...
    ,
    'question3': 
        ...
    
;

而且由于其子项的键中始终有一个数字,因此我想做一个循环并将循环的索引连接到对象键,并以点符号方法获取值...

所以,我想要获得这些值,我需要做一些这样的事情:

myObj.'question'+i

如何正确连接?

【问题讨论】:

你为什么不使用数组呢? myObj.questions[i] 会更有意义。 使用看起来像数组的表示法,myObj['question' + i] myObj['question' + i] 是理想的方式。 @jonrsharpe ,我正在使用一个对象,因为我想使用键/值对。不一定是索引键,我的意思是,我不会是question1,question2,question3,...,它可能会传递一些数字,你知道 【参考方案1】:

简单地做

myObj['question'+i]

这是因为点运算符不会根据 javascript 接受带有它的字符串。因此,您将不得不使用方括号,而方括号通常用于动态访问对象的属性。

【讨论】:

以上是关于如何连接(变量+对象键名)以点表示法获取对象值[重复]的主要内容,如果未能解决你的问题,请参考以下文章

获取 JavaScript 对象的第一个键名 [重复]

JavaScript如何使用变量设置对象的键名 /

Joi 对象验证:如何验证具有未知键名的值?

如何使用数字键名解构对象?

for...in 和 forEach

打字稿 |从对象 T 中提取具有类型 K 值的所有键名