javascript - 如何在 JavaScript 对象上执行 `push` ?

标签 javascript arrays json object

我想要实现的是在JavaScript对象上使用push(),看起来像这样:

var apps = {
    app1:
    [
        "ci-extension",
        "Unnamed",
        "<h1>Hello world!</h1>"
    ],
    app2:
    [
        "ci-extension",
        "Another one!",
        "Cool!"
    ]
}

目标是向对象添加第三个键“演示”,然后向其推送另外三行。 所以在所有的插入之后,对象应该看起来像这样:

var apps = {
    app1:
    [
        "ci-extension",
        "Unnamed",
        "<h1>Hello world!</h1>"
    ],
    app2:
    [
        "ci-extension",
        "Another one!",
        "Cool!"
    ],
    demo:
    [
        "ci-google",
        "My demo app!",
        "Some content"
    ]
}

我尝试了什么?

我尝试了以下代码Object.keys(apps).push("demo");(如果这有意义的话)。作为输出,我刚刚得到 3 并且 key “demo”没有添加到对象中。
然后为了将项目添加到演示中,我尝试使用这段小代码 Object.keys(apps)["demo"].push("blah blah blah...");,但它完全不起作用。

<小时/> 我的大脑和思想变得困惑。任何帮助都将受到高度赞赏和欢迎。提前致谢!

最佳答案

您不需要在这里push(),这是为了添加到现有数组。您只想添加一个 key 。最简单的方法是这样的:

apps.demo = [ "ci-google", "My demo app!", "Some content" ];

或者,等价

apps["demo"] = [ "ci-google", "My demo app!", "Some content" ];

您的代码不起作用的原因是 Object.keys( apps ) 创建了一个新数组,其中包含 apps 对象中的所有键,但执行了一些操作该数组不会对实际的 apps 对象执行任何操作 - 您只是编辑新数组。您需要做的是直接更改应用程序对象(如我上面所示)。

关于javascript - 如何在 JavaScript 对象上执行 `push` ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46354396/

相关文章:

javascript - 检查远程 JSON 是否比本地 JSON 新,而无需在 Javascript 中下载整个文件

json - 如何在 Flutter 中使用 JSON 正文发出 http DELETE 请求?

javascript - Chrome 多功能框特殊字符抛出错误

c# - 简单的 LinQ 问题 : convert [][] to []

javascript - 在 Typescript 中导入 jQuery 和其他库

javascript - 我的 id 值在传递到其他 Blade 后未从第一个数字读取数字 0

javascript - 在 Prisma 中嵌套写入

javascript - ChartJS 使用 jQuery 数组动态添加值

javascript - 使用多个 div 元素时创建增长/收缩计时器会中断

java - 各种Array复制方法的区别