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

How to add a new item to struct in JavaScript?

本文关键字:结构 添加 新项 JavaScript      更新时间:2023-09-26

我在 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"]是未定义的。那么如何添加新的呢?

你可以在一行上完成:

settings["type-new"] = {"setting-100": "new one"}

您需要先为对象设置 settings["type-new"]。

settings["type-new"] = {};
settings["type-new"]["setting-100"] = "new one";

Dogbert 说得对,因为你使用的是对象文字(这就是它们的名字,而不是结构:P),你必须创建它们,然后才能为它们赋值。做settings["type-new"]["setting-100"] = "new one";等同于undefined["setting-100"] = "new one";。这就是为什么它不起作用的原因。

另一方面,你

最好不要在你的键中使用破折号,我发现按照以下方式编写像你这样的代码更容易

settings.typeNew.setting100 = "new one";

哪个更直观(在属性名称是变量的值的情况下,[""]表示法非常有用,并且您 - 正确地 - 不想使用 eval)。