对象#1:
var chosenProperties = { 'size' : 'large' }
chosenProperties
是用户想要从下面的对象访问的属性。此对象基于表单值创建。
对象#2:
var allProperties = { 'sizes' : { 'large' : 'x', 'small' : 'y' } }
通常情况下,我会写allProperties.sizes.large
以显示x
,但如果我只有x
,我需要访问chosenProperties
该怎么办?我确信有一些方法可以做到这一点但我没有想到。
答案 0 :(得分:5)
每次属性的名称包含在另一个变量中时,您都可以使用方括号表示法来访问该属性。
allProperties.sizes[chosenProperties.size]
<强>更新强>
从ES2015开始,也可以在对象文字中使用方括号。
var field = "foo";
const obj = {
[field]: "bar"
};
obj.foo; // bar
答案 1 :(得分:1)
不是100%肯定你在这里想做什么,但你知道你可以:
allProperties.sizes[chosenProperies.size]
应该返回X
答案 2 :(得分:1)
allProperties.sizes [chosenProperties.size]
答案 3 :(得分:1)
if (chosenProperties.size) {
allProperties.sizes[chosenProperties.size]
}