Что нужно вернуть, чтобы прекратить рекурсию?

Вывести по названию свойства значение, первое совпадение завершает работу.

function getValue(objectValus, property) {
  for(let prop in objectValus) {
    if (prop === property) {
      return objectValus[prop];
    } else if (typeof(objectValus[prop]) === 'object') {
      return getValue(objectValus[prop], property);
    } else {
      //return continue;
    }
  }
}

console.log(getValue({ a: { b: 5 }, c: { e: 4 }, g: 5 }, 'e'));


Как продолжить выполнение, если во внутреннем массиве переменная не найдена ?
  • Вопрос задан
  • 138 просмотров
Пригласить эксперта
Ответы на вопрос 2
0xD34F
@0xD34F Куратор тега JavaScript
Не "что", а "в каком случае".

return getValue(objectValus[prop], property);

Не тупо возвращаете результат рекурсивного вызова, а сначала проверяете, что там не undefined, например.
Ответ написан
@kttotto
все, что .NET
Если не найдена, то ничего возвращать и не надо.
function getValue(objectValus, property) {
    for (let prop in objectValus) {
        if (prop === property) {
            if (typeof(objectValus[prop]) === 'object') {
                return getValue(objectValus[prop], property);
            }
            return objectValus[prop];
        }
    }
    return undefined;
}
Ответ написан
Ваш ответ на вопрос

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

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