Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用变量构建对象路径_Javascript_Jquery_Arrays_Javascript Objects - Fatal编程技术网

Javascript 使用变量构建对象路径

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": [ {

这个物体更长,但我为了这个问题缩短了它。有没有办法让我的3个变量设置对象路径?大概是这样的:

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]