Вам нужно переключить условие выхода и вызывать функцию, только если у вас есть номер, который не равен нулю.
function a(n) {
if (n !== 1) a(n - 1);
console.log("hello world =", n);
}
a(10);
Имеется
function a(n){
if (n == 1) { // exit condition
return; // end of function run
}
a(--n); // mutating variable
console.log("hello world = ", n);
}
условие выхода, которое проверяет значение и завершает функцию. Это предотвращает печать последнего значения.
Еще одна проблема - отмена n
путем повторного вызова функции. Используемая позже переменная dos больше не имеет первоначального значения.
Путем изменения функции выхода на проверку необходимости повторного вызова функции, в отличие от выхода, она позволяет запускаться для каждого требуемого числа и выполнять выход.
Если вы просто измените --n
на n - 1
, вам понадобится другой выход для 1
.
function a(n){
if (n == 1) {
console.log("hello world = ", n); // add another output here for 1
return;
}
a(n - 1);
console.log("hello world = ", n);
}
a(10);