6
私は、再帰的に範囲関数を実行して再帰を教えようとしています。私はなぜ以下のコードが動作していないのか理解できません。再帰的範囲関数が動作しない
反復バージョン:
function rangeList(num, num2) {
var arr = [];
for (var i = num; i < num2; i++) {
arr.push(i);
}
return arr;
}
再帰バージョン:
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]
メソッド内に1つのパラメータだけを指定して、「rangeRecursive」を呼び出しています。 –
これはデバッグするのが難しいはずはありません。 'return(num2> num)...'行にブレークポイントを置きます。ローカル変数を調べると、 'num2'が未定義であることがわかりました。そこから、あなたが 'num2'を渡すことに失敗したことを知るための素早いステップだったでしょう。 –