卡在雄辩的javascript练习5.2上(循环)

时间:2019-01-30 01:21:30

标签: javascript

我已经尝试了数小时的练习,但不确定自己出了什么问题。

这是我的代码。

function loop(number, test, action1, action2){
    while(test){
        action2(number);
        action1; 
    }
}

loop(3, n => n > 0, n => n - 1, console.log);
// → 3
// → 2
// → 1

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更具描述性-目前,action1action2似乎并没有太多信息:

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);