var area = "residenceArea1";
var type = "residenceType1";
var year = "constructionYear1";
var obj = {
"residenceType1": [
{
"constructionYear1": [
{
"residenceArea1": 103,
"residenceArea2": 82
}
]
},
{
"constructionYear2": [
{
"residenceArea1": 62
}
]
}
],
"residenceType2": [
{
"constructionYear1": [
{
"residenceArea1": 83
}
]
}
]
};
console.log(object.residenceType1[0].constructionYear1[0].residenceArea1) //103
这个对象更长,但我已经缩短了这个问题。有没有办法让我的3个变量设置对象路径?像这样的东西:
console.log(object.type[0].year[0].area)
变量根据用户选择的单选按钮而变化,这就是我想用变量设置路径的原因。此对象也可以变得更容易,因此我们不需要为数组指定[0]
吗?
答案 0 :(得分:1)
我认为你要求的是这样的:
obj[type][0][year][0][area]
方括号表示法允许在对象的键查找中使用任意表达式。 请注意,在查找期间,密钥将始终转换为字符串。
以下是等效的:
var type = 'residenceType1';
obj.residenceType1 // dot-notation
obj['residenceType1'] // square-bracket notation with string expression
obj[type] // square-bracket notation with variable expression
答案 1 :(得分:0)
唯一的解决方案是通过传递的命名属性[]
进行访问:
console.log(object[type][0][year][0][area]);