@SimpleAutomation

Рекурсия в Javascript?

При решении задачь на тему рекурсии в Javascript возник вопрос,
почему при исполнении кода ниже я получаю правильный результат ( 15),
но если убираю строку "else { return 1;}", функция возращает значение NaN.
По идее условие else выполняться вообще не должно.

function sumTo(n) {
			if(n > 1) {
				return (n + sumTo(n-1));
			}
			else { return 1;}
		}
		console.log(sumTo(5));
  • Вопрос задан
  • 1159 просмотров
Решения вопроса 1
BuriK666
@BuriK666
Компьютерный псих
Получаете Nan т.к. 2 + undefined это NaN
else можно убрать, но оставить return 1;

function sumTo(n) {
      if(n > 1) {
        return (n + sumTo(n-1));
      }
      return 1;
    }
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Потому что sumTo(1) без else вернет undefined
А undefined + 14 = NaN
Ответ написан
Комментировать
@SimpleAutomation Автор вопроса
Благодарю !
Я правильно понимаю цепочку ?
5 + 10 = 15
4 + 6 = 10
3 + 3 = 6
2 + 1 = 3
return 1
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект