私はJavaScriptにまったく慣れておらず、JavaScriptの動作のいくつかを理解していません。EloquentJavaScriptブックにあるreduce関数の再帰バージョンを書きたいです。それが私のコードです:
function rec_reduce( fn, base, list ) {
if( list.length === 0 ) {
return base;
}
else {
rec_reduce( fn, fn( base, list[ 0 ] ), list.slice( 1 ) );
}
}
print( rec_reduce( Math.min, 100, [ 5, 3, 7, 2, 6, 5 ] ));
結果は次のとおりです。
undefined
何が起こっているかを確認するために、次のように入力します。
print( base );
関数の最初の行として、結果は次のとおりです。
100
5
3
3
2
2
2
undefined
誰かが私に理由を説明しますか?