JavaScriptでの再帰を用いたパラメータの例
再帰を使って、配列の要素を順番に出力してみましょう。まず、配列は関数のパラメータとして渡されるものとします:
func([1, 2, 3]);
最初は再帰を使わずに、shiftメソッドを使って配列の要素を順番にすべて出力してみます:
function func(arr) {
console.log(arr.shift()); // 1を出力
console.log(arr); // [2, 3]を出力 - 配列が小さくなった
console.log(arr.shift()); // 2を出力
console.log(arr); // [3]を出力 - 配列が小さくなった
console.log(arr.shift()); // 3を出力
console.log(arr); // []を出力 - 配列は空
}
func([1, 2, 3]);
ご覧の通り、shiftメソッドは配列の最初の要素を切り取り、返します。その過程で、配列自体からその要素が取り除かれます。
それでは、再帰を使ってみましょう:
function func(arr) {
console.log(arr.shift(), arr);
if (arr.length != 0) {
func(arr);
}
}
func([1, 2, 3]);
実際のところ、配列の要素を反復処理する最も簡単な方法はループです。ここで示した例は、単純な(実用的ではない)例で再帰の動作を説明しているに過ぎません。再帰のより実用的な応用例はもう少し複雑で、後ほど詳しく見ていきます。
次の配列があります:
let arr = [1, 2, 3, 4, 5];
再帰を用いて、この配列の要素をコンソールに出力してください。