Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将for循环替换为for的递归函数_Javascript - Fatal编程技术网

Javascript 将for循环替换为for的递归函数

Javascript 将for循环替换为for的递归函数,javascript,Javascript,我正在做简单的js函数。。。 你能告诉我如何用递归函数代替循环吗。。 在下面的小提琴中提供我的代码。。 我正在努力学习js 函数操作(){ 控制台日志(“测试”); } 函数重复(操作,num){ 对于(变量i=0;i

我正在做简单的js函数。。。 你能告诉我如何用递归函数代替循环吗。。 在下面的小提琴中提供我的代码。。 我正在努力学习js

函数操作(){
控制台日志(“测试”);
}
函数重复(操作,num){
对于(变量i=0;i
循环本质上是迭代的。递归方法并不真正适合这种情况。不管怎样,给你。但使用它只是为了好玩,而不是为了真实:)

var foo=函数foo(){
console.log(arguments.callee);//logs foo()
//被调用方可用于递归调用foo函数(例如arguments.callee())
}();
您不应该使用它,因为它已被弃用,并且在ES5中不允许您再使用它:
[…]警告:第5版ECMAScript(ES5)禁止在严格模式下使用参数.callee()。避免使用arguments.callee(),方法是为函数表达式指定名称或使用函数声明,其中函数必须自己调用。[…]
function operation() {
    console.log("testing");
}

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

//repeat(operation, 10);
module.exports = repeat
function operation() {
    console.log("testing");
}

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

//repeat(operation, 10);
module.exports = repeat
function repeat(func,maxruns,run){
    if(run>=maxruns){
      return;
    }
    func();
    repeat(func,maxruns,(run||0)+1);
}
repeat(operation,10);
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>