Javascript Cutom循环函数无限循环

Javascript Cutom循环函数无限循环,javascript,infinite-loop,higher-order-functions,Javascript,Infinite Loop,Higher Order Functions,我是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); } } wh

我是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循环无限运行,控制台上没有任何日志记录


有人能帮忙吗。提前感谢。

更新方法

功能循环(计数器、检查、更新、fn){
while(支票(柜台)){
fn(柜台);
计数器=更新(计数器);
}
}

循环(3,n=>n>0,n=>n-1,console.log)您需要在本地更新计数器。现在扔掉
update
函数的返回值。
update
函数不是“更新”任何东西。它只是返回一个新的值,但是这个值没有保存在任何地方。考虑< <代码> > < /C> > @ ErraseXbox没有什么错误,而<>代码> < /C> >,并且因为条件fn是任意的,所以我看不出使用任何其他东西的巨大理由。你会建议什么来代替
?你需要像
计数器=更新(计数器)这样的东西为什么?这似乎不是一个最好通过递归解决的问题。