@justifycontent

Как понять этот скрипт?

Я начал изучать рекурсию, подскажите как она работает?
Я понимаю первые три шага, а дальше не могу понять.
1. n = 5
2. n !== 5
3. return myFun(n - 1) + ' ' + n; // Вывод: 4 5. Если изначально выводится 4 5, то как остальные числа оказываются до 4 5?
4. Дальше я не понимаю, переменная n не меняется вроде, как тогда получаются другие числа?
function myFun(n) {
  if (n === 1) return 1;

  return myFun(n - 1) + ' ' + n;
}

myFun(5);

// 1 2 3 4 5
  • Вопрос задан
  • 136 просмотров
Решения вопроса 1
@tukreb
Вы погулилте для начала.

Рекурсия начнёт возвращать результат тогда, когда дойдёт до самого конца и результаты начнёт возвращаться с самого конца. Отсюда и получается, что отправили 5, но выводить началось с 1, потому что return, до этого не работал, он вызывал функцию myFun, а возвращаться результат начал, когда сработал этот if if (n === 1) return 1;, в котором уже не вызывается myFun и соответственно заканчивается рекурсия и return начинает возвращать ответ.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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