【问题标题】:how to modify properties of an nested object?如何修改嵌套对象的属性?
【发布时间】:2020-05-04 08:08:09
【问题描述】:

我有以下嵌套对象,我需要将所有“条目”和“退出”的“别名”属性留空,并将“组”属性设置为 true。我还需要删除整个“参数”对象。 有没有办法在一个函数中完成所有这些?我尝试应用 delete Object 方法,但它不起作用,因为它是一个索引对象。

{
  "1": {
    "x": 114,
    "y": 135,
    "properties": {
      "id": 1,
      "entries": {
        "entry_0": {
          "id": 1,
          "alias": "do",
          "group": false
        }
      },
      "exits": {
        "exit_0": {
          "id": 1,
          "alias": "re",
          "group": false
        }
      },
      "parameters": {
        "parameter_0": {
          "id": 3,
          "group": false
        }
      },
      "order": 1
    }
  },
  "2": {
    "x": 700,
    "y": 104,
    "properties": {
      "id": 1
      "entries": {
        "entry_0": {
          "id": 1
          "alias": "do"
          "group": false
        }
      },
      "exits": {
        "exyt_0": {
          "id": 1
          "alias": "re"
          "group": false
        }
      },
      "parameters": {
        "parameter_0": {
          "id": 3
          "alias": "mi"
          "group": false
        }
      },
      "order": 2
    }
  }
}

所需的嵌套对象如下

{
  "1": {
    "x": 114,
    "y": 135,
    "properties": {
      "id": 1,
      "entries": {
        "entry_0": {
          "id": 1,
          "alias": "",
          "group": true
        }
      },
      "exits": {
        "exit_0": {
          "id": 1,
          "alias": "",
          "group": true
        }
      },
      "order": 1
    }
  },
  "2": {
    "x": 700,
    "y": 104,
    "properties": {
      "id": 1
      "entries": {
        "entry_0": {
          "id": 1
          "alias": ""
          "group": true
        }
      },
      "exits": {
        "exyt_0": {
          "id": 1
          "alias": ""
          "group": true
        }
      },
      "order": 2
    }
  }
}

我尝试过以下方法,设法删除“参数”对象,但我无法访问每个“条目”和“退出”的“标签”属性

const nedtedObjectsValues = Object.values(nestedObjects);
for (object of nedtedObjectsValues) {
   delete object.properties.parameters;

}

如果有人可以告诉我如何使用此功能。 提前谢谢你。

【问题讨论】:

  • @Bergi ?我刚刚编辑了我的问题
  • 看起来我在你提交编辑之前写了评论。谢谢!
  • deleteion 的 parameters 应该像你写的那样工作。现在您是如何尝试访问aliasgroup 标签的?
  • 不知道该怎么做...与其他 Object.values()??
  • 是的,完全正确。您需要遍历条目,并且需要遍历存在。你可以use Object.values, or any other enumeration approach

标签: javascript object javascript-objects indexed


【解决方案1】:

在 JavaScript 中,要引用数字对象属性,您需要使用方括号语法:

object.1 // bad
object[1] // good

您可以像这样删除数字属性:

delete object[1];

【讨论】:

  • 但是因为在这种情况下我想在所有编号的对象中删除它们,所以我已经为每个对象执行删除操作,但它仍然给我一个错误。在 for 我将对象分开但它不会删除其中任何一个所需的属性...感谢您提供的信息
  • 那你做错了。这是正确的语法:delete myObject.foo.bar[3].baz.
  • 你说得对,我错过了中间对象“属性”,我已经设法删除了参数对象
猜你喜欢
  • 2021-10-27
  • 2021-01-02
  • 1970-01-01
  • 1970-01-01
  • 2019-12-14
  • 2021-02-03
  • 2016-07-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多