Связь между массивами
В функции ниже в итоге, когда n станет меньше 1, должен выводится пустой массив, как указано в условии. Но выводятся цифры в обратном порядке в массиве. Это указано в остаточном условии, но они должны помещаться в массив arr, на которой висит рекурсия. Не вижу связи между пустым массивом, который должен выводится в первом условии, и массивом arr, в который пушатся значения. Спасибо за ответ!
function countdown(n){
if(n < 1) {
return [];
} else {
let arr = countdown(n -1);
arr.unshift(n);
return arr;
}
}
console.log( countdown(5) );
Ответы (1 шт):
Автор решения: Igor
→ Ссылка
когда n станет меньше 1, должен выводится пустой массив
Не "выводится", а "возвращаться", что и происходит. Но потом, во время движения обратно вверх по цепочке вызовов, в этот массив добавляются числа.
function countdown(n) {
let arr;
if (n < 1) {
arr = ['bottom'];
} else {
arr = countdown(n - 1);
arr.unshift(n);
}
console.log(n, JSON.stringify(arr));
return arr;
}
console.log(countdown(5));