【问题标题】:Add items to (sub) object of nested Json array将项目添加到嵌套 Json 数组的(子)对象
【发布时间】:2017-07-21 19:02:09
【问题描述】:

我有一个嵌套的 JSON 数组,想将子项分配给它的子对象之一。

例如当我这样做时:

jsonData[0].menu1[0].menu2[0].menuItem5 = "ok";

添加了一个带有文本“ok”的项目,这是想要的行为。

我想以类似的方式创建更多这样的菜单项(例如 menuItem6,7,8,9,..)。 我试着写一个循环=>

var i = 6;
while (i < 20) {
jsonData[0].menu1[0].menu2[0].menuItem[i] = "ok";
i++;
}

但这不起作用。请问这个怎么解决?

【问题讨论】:

    标签: arrays json loops


    【解决方案1】:

    您可以使用模板文字并执行类似的操作:

    const obj = {
      key1: 'a',
      key2: 'b',
      key3: 'c'
    }
    let i = 1;
    while (i < 4) {
      console.log(obj[`key${i}`]);
      i++;
    }

    【讨论】:

    • 你好 Geeky,看起来很有趣;谢谢你的建议!!我试图为我的代码翻译它,但我想我做错了什么;这是我得到的最好的镜头: const obj = { key1: 'menuItem5', key2: 'menuItem6', key3: 'menuItem7' } let i = 1; while (i key${i}]); jsonData[0].menu1[0].menu2[0].(obj[key${i}]) = "ok";我++;这给了我以下错误:'未捕获的类型错误:无法设置未定义的属性'key1'。谢谢!:)
    • 你能把你的代码示例发给我吗,我可以帮你
    • 你会完全用那个来度过我的一天 :) 你可以在这里找到它:jsfiddle.net/user979979/debzhnc9/4 所以我要做的是向 menuItems 对象添加子对象。我想在一个循环中这样做,以便我可以轻松地向该对象添加许多新的 menuItems,并且它们中的每一个都必须有一个唯一的名称(所以 menuItem1、menuItem2、menuItem3、..)如果我可以这样做:jsonData [0].menu1[0].menu2[0].menuItem[i] = "ok";在一个循环中它会被解决,但似乎不允许(这很明显,但不幸的是我现在没有看到另一个解决方案)谢谢
    • 哇,太棒了,我已经找了好几个小时的工作解决方案了。我真的很感激这一点;非常感谢你!! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-19
    • 1970-01-01
    相关资源
    最近更新 更多