@Evgeii

Как пройтись циклом вглубь объекта?

Здравствуйте. Подскажите пожалуйста как добраться до значения c: циклом. Я дохожу до b глубины и потом все запутанное как то становится. Или может есть более легкий способ цикла?
const obj = { 
  a: { 
    b: { 
      c: 'd' 
    },
    e: 'f'
  }
};
function getObj(obj) {
  for(let i in obj) { 
   for(let j in obj[i]) {
     let objJ = obj[i]
     console.log(objJ[j])
   }
  } 
}
getObj(obj)
  • Вопрос задан
  • 241 просмотр
Решения вопроса 2
@AleksRap
Начнем с того что имена переменным можно давать одинаковые, т.к у let блочная область видимости. Во вторых в таком случае лучше всего использовать рекурсию. Тогда объект может быть сколько угодно вложенным, но сложность восприятия кода не пострадает
Ответ написан
@LJ322
Как уже сказали ранее, рекурсивный перебор будет здесь наиболее оптимален:
function getObj(obj) {
  for (let prop of Object.values(obj)) {
    if (typeof prop === 'object') getObj(prop);
    else console.log(prop);
  }
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы