Javascript:在嵌套字典中添加键/值对;键和值是变量

时间:2019-08-09 09:24:03

标签: javascript dictionary object nested keyvaluepair

我有一个具有以下结构的字典:

myDict = {key1:{innerKey1:innerValue1, innerKey2:innerValue2}, key2:{},...}

基于: How can I add a key/value pair to a JavaScript object?

我试图像这样添加内键/值对:

someArray=['foo','bar']
var identifier = someArray[0]
var info = someArray[1]
myDict[key1][identifier] = info;

或者这样:

myDict[key1].identifier = info;

但是出现错误“无法设置未定义的属性” 。我认为这是由于尚未在myDict中定义标识符,但是我无法弄清楚如何实现此目标:

myDict = {key1:{innerkey1:innerValue1, innerKey2: innerValue2, foo:bar,...}, key2:{},...} 

请注意:在此示例中,我知道不需要分配变量。我需要弄清楚一个更大,更复杂的项目的概念,这是最小的“无效”示例。

预先感谢:)

2 个答案:

答案 0 :(得分:3)

括号符号要求键必须是字符串:

myDict["key1"][identifier] = info;

或仅使用点符号:

myDict.key1[identifier] = info;

答案 1 :(得分:2)

在您的代码段中,key1似乎没有定义。

您还想确保在尝试访问该对象之前已定义该对象

someArray=['foo','bar']
var identifier = someArray[0]
var info = someArray[1]
if (!myDict[key1]) myDict[key1] = {};
myDict[key1][identifier] = info;