私はJavascriptの初心者ですが、少し問題があります。宿題には問題がありますが、それは完了だけに基づいて評価されるので、私は自分のために正しい答えを見つけようとしています。Javascriptで関数から値を取得する
私は、repeatUntilという関数を定義することになっています。これは、2つの関数、つまりf(数値を返します)とg(ブール値を返します)を取ります。 repeatUntilの機能は、gがtrueを返すまで関数fを少なくとも1回繰り返すことです。ここで
は、私がこれまで持っているものです。
var print = console.log;
var r = repeatUntil(function(x) { return x + x }, function(x) { return x >= 20 })
print(r(2))
print("Expected: 32")
機能が動作しますが、私の問題は今、更新を記憶している。
function repeatUntil(f, cond) {
var f1;
do{
f1 = f;
return f1;
}
while(cond(f1()));
}
そしてここでは、我々はそれを呼び出す方法をテスター/ありますrepeatUntil関数からのxの値。現在、関数は1回だけ実行され、関数gにxの更新された値を渡すことができないため、条件は更新されません。私はf()の結果を変数に入れようとしましたが、数値ではなく関数だけを返します。
ご迷惑をおかけして申し訳ございません。ありがとうございました!
の身体に戻るので、doループが正確に一度だけ実行されますループはコード内で最も明白なエラーです。一度修正すると別の問題が発生します –
r()を呼び出す必要があるため、関数は別の関数を返す必要があります –
@JaromandaXループを終了した後、 、条件が更新されていないので今私に無限ループを与えている。 – Riadiani