你自己的循环

你自己的循环

pubdate:2019-07-09 09:12:03
tags:习题,JavaScript
题目:​编写一个高阶函数 loop,提供类似 for 循环语句的东西。 它接受一个值,一个测试函数,一个更新函数和一个主体函数。 每次迭代中,它首先在当前循环值上运行测试函数,并在返回 false 时停止。 然后它调用主体函数,向其提供当前值。 最后,它调用 update 函数来创建一个新的值,并从头开始。
定义函数时,可以使用常规循环来执行实际循环。
javascript
loop(3, n => n > 0, n => n - 1, console.log); // → 3 // → 2 // → 1
解 :
javascript
function loop(value,testFun,updateFun,Fun) { if(testFun(value)===false) return Fun(value) return loop(updateFun(value),testFun,updateFun,Fun) } loop(3, n => n > 0, n => n - 1, console.log);