как изменить свойства вложенного объекта? - PullRequest
0 голосов
/ 04 мая 2020

У меня есть следующий вложенный объект, и мне нужно оставить свойство «псевдоним» пустым, а для свойства «группа» установить значение true для всех «входов» и «выходов». Мне также нужно удалить весь объект «параметры». Был бы способ сделать все это в одной функции? Я пытался применить метод удаления 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
    }
  }
}

что я я пробовал следующее, мне удалось удалить объект «параметры», но я не могу получить доступ к свойству «label» каждой «entry» и «exit

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

}

, если кто-нибудь может дать мне идею о том, как подойти к этой функции. Заранее спасибо.

1 Ответ

1 голос
/ 04 мая 2020

В JavaScript, чтобы ссылаться на цифры c свойств объекта, вам необходимо использовать синтаксис в квадратных скобках:

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

Вы можете удалить свойство нумерации c следующим образом:

delete object[1];
...