首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在JavaScript中向结构添加新项?

如何在JavaScript中向结构添加新项?
EN

Stack Overflow用户
提问于 2012-08-14 18:47:30
回答 3查看 3.7K关注 0票数 2

我在JavaScript中有一个结构

代码语言:javascript
复制
    settings = {
        "type-1": {
            "setting-1": true,
            "setting-2": 2
         }
        "type-2": {
            "setting-3": "value",
         }
    };

我可以修改这些项目:

代码语言:javascript
复制
settings["type-1"]["setting-1"] = false;

但是我怎样才能在这个结构中添加一个新项目呢?

正在尝试

代码语言:javascript
复制
settings["type-new"]["setting-100"] = "new one";

但是设置“type-new”是未定义的。那么如何添加一个新的呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-14 18:48:28

你需要先给一个对象设置type-new。

代码语言:javascript
复制
settings["type-new"] = {};
settings["type-new"]["setting-100"] = "new one";
票数 2
EN

Stack Overflow用户

发布于 2012-08-14 18:57:14

您可以在一行中完成此操作:

代码语言:javascript
复制
settings["type-new"] = {"setting-100": "new one"}
票数 4
EN

Stack Overflow用户

发布于 2012-08-14 18:58:25

Dogbert做对了,因为你使用的是object字面量(这是它们的名字,不是structs :P),你必须先创建它们,然后才能给它们赋值。做settings["type-new"]["setting-100"] = "new one";相当于做undefined["setting-100"] = "new one";。这就是它不起作用的原因。

另外,你最好不要在键中使用破折号,我发现像你这样的代码更容易写成这样:

代码语言:javascript
复制
settings.typeNew.setting100 = "new one";

这更直观(当属性名是变量的值,而您不想使用-rightly时,[""]表示法非常有用)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11950674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档