我已经尝试了数小时的练习,但不确定自己出了什么问题。
这是我的代码。
function loop(number, test, action1, action2){
while(test){
action2(number);
action1;
}
}
loop(3, n => n > 0, n => n - 1, console.log);
// → 3
// → 2
// → 1
答案 0 :(得分:3)
传递给loop
的所有内容(number
除外)都是函数-您需要在循环中调用所有这些函数,然后重新分配number
到调用action1
的结果:
function loop(number, test, action1, action2){
while(test(number)){
action2(number);
number = action1(number);
}
}
loop(3, n => n > 0, n => n - 1, console.log);
此外,您可以重命名变量以使每个action
更具描述性-目前,action1
和action2
似乎并没有太多信息:
function loop(initialNumber, testFn, finalFn, loopBodyFn) {
let number = initialNumber;
while (testFn(number)) {
loopBodyFn(number);
number = finalFn(number);
}
}
loop(3, n => n > 0, n => n - 1, console.log);