我在JavaScript中有一个结构
settings = {
"type-1": {
"setting-1": true,
"setting-2": 2
}
"type-2": {
"setting-3": "value",
}
};我可以修改这些项目:
settings["type-1"]["setting-1"] = false;但是我怎样才能在这个结构中添加一个新项目呢?
正在尝试
settings["type-new"]["setting-100"] = "new one";但是设置“type-new”是未定义的。那么如何添加一个新的呢?
发布于 2012-08-14 18:48:28
你需要先给一个对象设置type-new。
settings["type-new"] = {};
settings["type-new"]["setting-100"] = "new one";发布于 2012-08-14 18:57:14
您可以在一行中完成此操作:
settings["type-new"] = {"setting-100": "new one"}发布于 2012-08-14 18:58:25
Dogbert做对了,因为你使用的是object字面量(这是它们的名字,不是structs :P),你必须先创建它们,然后才能给它们赋值。做settings["type-new"]["setting-100"] = "new one";相当于做undefined["setting-100"] = "new one";。这就是它不起作用的原因。
另外,你最好不要在键中使用破折号,我发现像你这样的代码更容易写成这样:
settings.typeNew.setting100 = "new one";这更直观(当属性名是变量的值,而您不想使用-rightly时,[""]表示法非常有用)。
https://stackoverflow.com/questions/11950674
复制相似问题