带子对象的javascript对象-如何正确使用它

带子对象的javascript对象-如何正确使用它,javascript,dictionary,nested,Javascript,Dictionary,Nested,我已经了解了在Python中如何使用命名元组来存储和检索与键值关联的值,如下所示: REQUIRED_FIELDS = { 0: RequiredFields(LocalityDisplay=True, LocalityRequired=False, RegionDisplay=True, RegionRequired=False, PostcodeDisplay=True, PostcodeRequired=False), 1: RequiredFields(LocalityD

我已经了解了在Python中如何使用命名元组来存储和检索与键值关联的值,如下所示:

REQUIRED_FIELDS = {
    0: RequiredFields(LocalityDisplay=True, LocalityRequired=False, RegionDisplay=True, RegionRequired=False, PostcodeDisplay=True, PostcodeRequired=False),
    1: RequiredFields(LocalityDisplay=False, LocalityRequired=False, RegionDisplay=True, RegionRequired=True, PostcodeDisplay=True, PostcodeRequired=True),
    2: RequiredFields(LocalityDisplay=True, LocalityRequired=True, RegionDisplay=False, RegionRequired=False, PostcodeDisplay=True, PostcodeRequired=True),
    3: RequiredFields(LocalityDisplay=True, LocalityRequired=True, RegionDisplay=False, RegionRequired=False, PostcodeDisplay=True, PostcodeRequired=True),
    ..........
}
我试图用javascript复制上述代码。在搜索中,我发现了一个对javascript“嵌套字典”的模糊且不太有用的引用,但我找不到任何示例。我曾尝试搜索其他变体,但结果是一片空白。这种方法会被称为“嵌套字典”还是用另一个名字

我希望有人能对这个话题有所了解,并看看我如何猜测这个javascript嵌套字典语法的例子

var addressNestedDictionary = {
    0: {"LocalityDisplay": 'True', "LocalityRequired": "False", "RegionDisplay": "True", "RegionRequired": "False", "PostcodeDisplay": "True", "PostcodeRequired": "False"}, 
    1: {"LocalityDisplay": "False", "LocalityRequired": "False", "RegionDisplay": "True", "RegionRequired": "True", "PostcodeDisplay": "True", "PostcodeRequired": "True"},
    2: {"LocalityDisplay": "True", "LocalityRequired": "True", "RegionDisplay": "False", "RegionRequired": "False", "PostcodeDisplay": "True", "PostcodeRequired": "True"},
    3: {"LocalityDisplay": "True", "LocalityRequired": "True", "RegionDisplay": "False", "RegionRequired": "False", "PostcodeDisplay": "True", "PostcodeRequired": "True"},
    ........
};

如果上述方法正确,我将如何调用嵌套字典?

JavaScript有对象,而不是字典。可以通过两种方式实例化对象:

var myObj = {};
var myObj = new Object();
myObj["subObject"]    // equal to {}
myObj.subObject       // equal to {}
对象允许您访问其命名属性。您可以在创建过程中设置属性:

var myObj = {
    0 : "fun",
    test : [1, 2, 3],
    "delete" : "you need to surround keywords, like delete, in quotes",
    "if" : "otherwise, the quotes are optional"
}
或以后:

myObj.anArray = [];
对象属性甚至可以是另一个对象

myObj.subObject = {};
您可以通过两种方式访问这些属性:

var myObj = {};
var myObj = new Object();
myObj["subObject"]    // equal to {}
myObj.subObject       // equal to {}
在您的情况下,您可以通过以下方式访问子对象:

addressNestedDictionary[0]
/* returns
   {
    "LocalityDisplay": 'True',
    "LocalityRequired": "False",
    "RegionDisplay": "True",
    "RegionRequired": "False",
    "PostcodeDisplay": "True", "PostcodeRequired": "False"
   }
*/

请注意我如何使用
地址嵌套字典[0]
。这是因为
addressNestedDictionary.0
将是一个语法错误,它将被错误地解析。不过,括号和圆点这两种符号在其他方面的作用完全相同。

addressNestedDictionary[0]。LocalityDisplay
addressNestedDictionary[0][“LocalityDisplay”]
Royhowie,谢谢我让object&child对象正常工作。但是如何将该值合并到if语句中呢?例如:if(addressNestedDictionary[$('#id_address_country_style_type').val()].LocalityDisplay){//执行正确的操作。}else{//执行错误的操作。}@user1261774应该可以工作,尽管您可能希望首先通过
nestedAddress[someVal]和&nestedAddress[someVal]检查对象的存在性.LocalityDisplay