带子对象的javascript对象-如何正确使用它
我已经了解了在Python中如何使用命名元组来存储和检索与键值关联的值,如下所示:带子对象的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
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