用递归函数替换for循环

时间:2014-09-24 19:50:19

标签: javascript

我正在研究简单的js函数... 你可以告诉我如何用递归函数替换循环.. 在小提琴下面提供我的代码.. 我正在努力学习js

http://jsfiddle.net/utbsgnzu/4/

function operation() {
    console.log("testing");
}

function repeat(operation, num) {
    for (var i = 0; i < num; i++) {
        operation();
    }
}

//repeat(operation, 10);
module.exports = repeat

3 个答案:

答案 0 :(得分:3)

function operation() {
    console.log("testing");
}

function repeat(operation, num) {
    if (num === 0) return;
    operation();
    repeat(operation, num-1);
}

//repeat(operation, 10);
module.exports = repeat

答案 1 :(得分:0)

循环本质上是迭代的。递归方法并不适合这种情况。无论如何,你走了。但是只使用它来获取乐趣,永远不要真实:)

function repeat(func,maxruns,run){
    if(run>=maxruns){
      return;
    }
    func();
    repeat(func,maxruns,(run||0)+1);
}
repeat(operation,10);

答案 2 :(得分:-2)

var foo = function foo() {
console.log(arguments.callee); // logs foo()
// callee could be used to invoke recursively the foo function (e.g.     arguments.callee())
}();
</script></body></html>