私はJavaScriptにはかなり新しく、いくつかの動作を理解していません。 Eloquent JavaScript本にあるreduce関数の再帰的なバージョンを書いてみたい。JavaScriptの再帰的な削減
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
誰でも私を説明してくださいハイ?
reduce_file.js:
function reduce(arr, func, initv){
if(arr.length) return reduce(arr.slice(1), func, func(initv, arr[0]))
else return initv
}
module.exports = reduce
、その後、あなたのようにそれを使用することelse
ブロックで
THX LOTから
!私は今この戻り値を忘れています。主に何か再帰的なものが必要なので、私はSchemeでプロトタイプを作りました - 返信文はありません;)Thx again! – trzewiczek
@trzewiczek受け入れる気には?あなたの*プロフィールもうまくいきます。 –
申し訳ありませんが - それはちょうど私が経験していない - それについて忘れてしまった!! – trzewiczek