首页 > 解决方案 > 如何修改嵌套对象的属性?

问题描述

我有以下嵌套对象,我需要将所有“条目”和“退出”的“别名”属性留空,并将“组”属性设置为 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;

}

如果有人可以告诉我如何使用此功能。先感谢您。

标签: javascriptobjectjavascript-objectsindexed

解决方案


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

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

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

delete object[1];

推荐阅读