如何修改嵌套对象的属性?

时间:2020-05-04 08:08:09

标签: javascript object javascript-objects indexed

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

}

如果有人可以给我一个如何实现此功能的想法。 预先谢谢你。

1 个答案:

答案 0 :(得分:1)

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

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

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

delete object[1];