我是Javascript的初学者,遇到了一个小问题。这是一个家庭作业问题,但它只是根据完成情况进行评分,所以我只是想为自己找出正确的答案。
我应该定义一个函数,repeatUntil,它接受另外两个函数,例如f(返回一个数字)和g(返回布尔值)。repeatUntil的功能是至少重复函数f一次,直到g返回true。
以下是我到目前为止的情况:
function repeatUntil(f, cond) {
var f1;
do{
f1 = f;
return f1;
}
while(cond(f1()));
}
下面是测试人员/我们如何称呼它:
var print = console.log;
var r = repeatUntil(function(x) { return x + x }, function(x) { return x >= 20 })
print(r(2))
print("Expected: 32")
函数运行,但我现在的问题是从repeatUntil函数中存储x的更新值。现在函数只运行一次,条件没有更新,因为我无法将更新后的x值传递给函数g。我尝试将f()的结果放入变量中,但它只返回一个函数,而不是一个数字。
任何帮助/建议都将不胜感激。非常感谢。