Demigodd
@Demigodd

Как проверять вложенные обьекты на наличие ключа и если он есть, то выполнять определенное действие?

Представим есть такой обьект.
var obj = {
  prop: {
    prop_1: {
      id: 1,
      name: 'aaa'
    }
  },
  parent: {},
  childs: []
}


Вопрос состоит в том, что
1) Нужно проверять у этого обьекта наличие prop ключа если он есть то пройтись по всем пропсам(prop_1, ...) и изменить их name на 'changed'.
2) Но проблема в том что у этого обьекта может быть childs массив в котором анологичные обьекты или parent тоже похожий обьект.
У них тоже нужно проверять наличие prop ключа...
3) В child`ах или в parent`е не нужно проверят наличие childs, parent.

Надеюсь кто то понял вопрос. Если нет то буду рад ответить на комментарий.
  • Вопрос задан
  • 84 просмотра
Решения вопроса 1
hzzzzl
@hzzzzl
попробуй со своими тестовыми объектами
function f(obj) {
  for(const key in obj['prop']) {

    for(const subkey in obj['prop'][key]) {
      obj['prop'][key][subkey] = 'changed'
    }
    
  }

  for(const key of obj['childs']) {
    f(key)
  }
}


3) В child`ах или в parent`е не нужно проверят наличие childs, parent. --
ага, это я не заметил, но если в остальном работает то можно прокидывать параметр типа
function f(obj, isChild)
и не проверять детей если isChild == true
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
mannaro
@mannaro Куратор тега JavaScript
Умею профессионально гуглить
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы