Javascript 使用变量构建对象路径
这个物体更长,但我为了这个问题缩短了它。有没有办法让我的3个变量设置对象路径?大概是这样的:Javascript 使用变量构建对象路径,javascript,jquery,arrays,javascript-objects,Javascript,Jquery,Arrays,Javascript Objects,这个物体更长,但我为了这个问题缩短了它。有没有办法让我的3个变量设置对象路径?大概是这样的: var area = "residenceArea1"; var type = "residenceType1"; var year = "constructionYear1"; var obj = { "residenceType1": [ { "constructionYear1": [ {
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
console.log(object[type][0][year][0][area]);
变量的变化取决于用户选择的单选按钮,这就是为什么我想用变量设置路径。还可以简化此对象,这样我们就不需要为数组指定
[0]
。唯一的解决方案是通过传入命名属性的[]
进行访问:
console.log(object.type[0].year[0].area)
我想你要求的是这样的:
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
console.log(object[type][0][year][0][area]);
方括号表示法允许在对象的键查找中使用任意表达式。
请注意,在查找过程中,该键将始终转换为字符串
以下是等效的:
obj[type][0][year][0][area]