Sto cercando di insegnarmi la ricorsione eseguendo una funzione di intervallo in modo ricorsivo. Non riesco a capire perché il codice qui sotto non funziona?Funzione intervallo ricorsivo non funzionante
versione iterativa:
function rangeList(num, num2) {
var arr = [];
for (var i = num; i < num2; i++) {
arr.push(i);
}
return arr;
}
versione ricorsiva:
function rangeRecursive(num, num2) {
return (num2 > num) ? rangeRecursive(num2 - 1).concat(num2) : []
}
console.log(rangeList(1, 7)); // returns [1, 2, 3, 4, 5, 6]
console.log(rangeRecursive(1, 7)); // returns [7]
Stai chiamando 'rangeRecursive' con un solo parametro all'interno del metodo. –
Questo non dovrebbe essere stato così difficile da eseguire il debug. Posiziona un punto di interruzione nella riga 'return (num2> num) ...'. Esaminare le variabili locali ti avrebbe mostrato che 'num2' non era definito. Da lì, sarebbe stato un rapido passo per capire che non stavi riuscendo a superare 'num2'. –