Javascript 从数组创建动态对象树

Javascript 从数组创建动态对象树,javascript,arrays,object,Javascript,Arrays,Object,我有这些阵列 countryList = ["United Kingdom", "France", "Tajikstan"] countryDetails = ["Markets", "Government", "Details"] countryFactors = ["Capital", "Labour", "Land"] marketList = ["Primary", "Secondary", "Service"] businessList = ["Businesses", "I

我有这些阵列

countryList = ["United Kingdom", "France", "Tajikstan"]

countryDetails = ["Markets", "Government", "Details"] 

countryFactors = ["Capital", "Labour", "Land"]

marketList = ["Primary", "Secondary", "Service"]

businessList = ["Businesses", "Info"]

supplyAndDemand = ["Supply", "Demand", "Price"]
我希望这些数组形成一个对象,如下所示

Country.list ={
"United Kingdom":{
    "Markets":{ 
        "Primary":{
            "Businesses":{},
            "Info":{
                "Suppy":0,
                "Demand":0,
                "Price":0,
            },
        },
        "Secondary":{
            "Businesses":{},
            "Info":{
                "Suppy":0,
                "Demand":0,
                "Price":0,
            },
        },
        "Service":{
            "Businesses":{},
            "Info":{
                "Suppy":0,
                "Demand":0,
                "Price":0,
            },
        },
    },
    "Government":{

    },
    "Details":{
        "Capital":{
            "Info":{
                "Suppy":0,
                "Demand":0,
                "Price":0,
            },
        },
        "Labour":{
            "Info":{
                "Suppy":0,
                "Demand":0,
                "Price":0,
            },
        },
        "Land":{
            "Info":{
                "Suppy":0,
                "Demand":0,
                "Price":0,
            },
        },
    },  
},

"France":{
    "Markets":{ 
        "Primary":{
            "Businesses":{},
            "Info":{
                "Suppy":0,
                "Demand":0,
                "Price":0,
            },
        },
        "Secondary":{
            "Businesses":{},
            "Info":{
                "Suppy":0,
                "Demand":0,
                "Price":0,
            },
        },
        "Service":{
            "Businesses":{},
            "Info":{
                "Suppy":0,
                "Demand":0,
                "Price":0,
            },
        },
    },
    "Government":{

    },
    "Details":{
        "Capital":{
            "Info":{
                "Suppy":0,
                "Demand":0,
                "Price":0,
            },
        },
        "Labour":{
            "Info":{
                "Suppy":0,
                "Demand":0,
                "Price":0,
            },
        },
        "Land":{
            "Info":{
                "Suppy":0,
                "Demand":0,
                "Price":0,
            },
        },
    },  
  },
}
因此,基本上取决于数组的名称,指示后面的内容。因此,如果数组名为“Markets”,那么该数组下面将是“marketList”数组。等

有人有主意吗?我本想在循环后执行if语句,但if语句一直在修改我的代码


下面是我一直在做的代码示例:

您可以对嵌套对象的任何深度使用动态方法

功能iter(对象,i){
数据[i].forEach(函数(k){
如果(i+1<数据长度){
对象[k]={};
iter(对象[k],i+1);
}否则{
对象[k]=0;
}
});
}
var数据=[“英国”、“法国”、“塔吉克斯坦”]、[“市场”、“政府”、“细节”]、[“资本”、“劳动力”、“土地”]、[“初级”、“次级”、“服务”]、[“企业”、“信息”]、[“供应”、“需求”、“价格”],
tree={};
iter(tree,0);
控制台日志(树)

.as console wrapper{max height:100%!important;top:0;}
Regex和case语句,嵌套在
forEach
s中,可能……要么您的问题不清楚,要么您正试图自动化一个不可能(您必须编程)的业务逻辑singsuyash,不确定您为什么称之为不可能。原因是什么?对我来说似乎是个好问题。与您的描述相反,数组条目和较低级别的数组名称之间没有明显的联系。市场->市场列表,详细信息->国家因素。。。没有办法按原样自动完成这项工作,它只是将有许多嵌套循环。在修复了一个小问题后,您的代码工作正常。你只需要按照同样的程序处理业务和信息。我在控制台中看到了正确的输出。我遗漏了什么吗?如果结构是一致的,这很好,但我要创建的结构中存在异常(你可以在我的问题中包含的示例中看到我正在寻找的结构)。哎哟,我修复了问题,在if语句中,它应该是双“==”,我是个白痴