自定义循环函数无限循环

Cutom loop function looping infinitely

我是 JavaScript 的新手 我需要制作一个像这样工作的函数:

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

这是我的代码:

function loop(counter, condition, update, fun){
    while(condition(counter)){
        fun(counter);
        update(counter);
    }
}

while 循环是 运行 无限循环,控制台上没有任何日志记录。


有人可以帮忙吗。提前致谢。

一种更新方法。

function loop(counter, check, update, fn) {
    while (check(counter)) {
        fn(counter);
        counter = update(counter);
    }
}

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

一种递归方法。

function loop(counter, check, update, fn) {
    if (!check(counter)) return;
    fn(counter);
    loop(update(counter), check, update, fn);
}

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