Задать вопрос
@WebNerd
It's time to hunt

Объясните, почему не работает код с рекурсией?

function digital_root(n) {
  let result = String(n).split('');
  
  result = result.reduce((prev, item, i) => +prev + +item, 0);
  
  if( String(result).length == 1 ) {
    console.log(result);
    return result;
  }
  
  digital_root(result);
}

console.log(digital_root(493193));


В этом коде Console.log выводит 2, как и нужно, а return undefined. Я ОЧЕНЬ внимательно смотрел, но честно, вообще не могу понять в чем проблема.
  • Вопрос задан
  • 98 просмотров
Подписаться 1 Простой 5 комментариев
Пригласить эксперта
Ответы на вопрос 1
Да тут рекурсия и не нужна, у вас редьюс просто считает сумму и вы её можете вернуть, для чего тут рекурсия? Чтобы ещё раз заредьюсить результат? Нужно же отталкиваться от целей, что необходимо получить, а по вашему коду как понять, чего вы хотите от этой функции? Чтобы она просто посчитала сумму вписанных чисел, или чтобы что? А так да, return просто добавить нужно: return digital_root(result);
Ответ написан
Ваш ответ на вопрос

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

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