HistoryART
@HistoryART
Вы глупеете быстрее, чем мы учимся.

Почему рекурсия не работает?

Разминаю булки на codewars. Скажите пожалуйста (намёк) где я ошибку допустил, хоть номер строки. Подумаю сам посижу.

function digital_root(n) {

  let res = [];

  function getResult(num) {
  
    let result = num.toString().split('').reduce((sum, current) => {
  
      let count = +sum + +current;   
      
      if(count.length > 1) getResult(count);
    
      return count;
      
    });
    
    return result;
    
  }
  
  return getResult(n);
}
  • Вопрос задан
  • 264 просмотра
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
Это конечно круто - публиковать код, не говоря при этом ни слова о том, что он делает, и просить найти в нём косяки. Поступлю симметрично: вот вам код рабочий - сравнивайте со своим, думайте:

const digital_root = x => x > 9 ? digital_root([...`${x}`].reduce((acc, n) => acc + +n, 0)) : x;
Ответ написан
Aetae
@Aetae
Тлен
У Number нет length.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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