Javascript:在嵌套字典中添加键/值对;键和值是变量
Posted
技术标签:
【中文标题】Javascript:在嵌套字典中添加键/值对;键和值是变量【英文标题】:Javascript: Add key/value pairs in nested dict; key and value are variables 【发布时间】:2019-12-17 00:28:00 【问题描述】:我有一本结构如下的字典:
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:,...
请注意:我知道在这个例子中变量的分配是不必要的。我需要弄清楚一个更大、更复杂的项目的概念,这是最小的“非工作”示例。
提前致谢:)
【问题讨论】:
【参考方案1】:从你的 sn-p 看来,key1
似乎没有被定义。
您还想确保在尝试访问对象之前已定义该对象
someArray=['foo','bar']
var identifier = someArray[0]
var info = someArray[1]
if (!myDict[key1]) myDict[key1] = ;
myDict[key1][identifier] = info;
【讨论】:
【参考方案2】:括号表示法要求键是字符串:
myDict["key1"][identifier] = info;
或者只使用点符号:
myDict.key1[identifier] = info;
【讨论】:
这也是我的答案,不知道为什么有人认为它不好。 key1 可能是一个公平的变量。 我知道@Morphyish,但他们没有定义它的事实导致了错误。 由于标识符是上面定义的变量myDict.key1[identifier] = info
将是正确的解决方案
@JackBashford 我自己的赌注是key1
在尝试更新其属性时在字典中没有关联值;D以上是关于Javascript:在嵌套字典中添加键/值对;键和值是变量的主要内容,如果未能解决你的问题,请参考以下文章