Javascript将函数重复x次

Javascript将函数重复x次,javascript,Javascript,我试图开发一个函数,它可以重复函数x的次数,只重复一次,而不是基于settimerinterval或settimeout或任何基于时间的东西。我不想直接使用while/for循环,我想使用这个repeat函数 我试过这样的方法: function repeat(func, times) { for (x = 0; x < times; x++) { eval(func) } } 函数重复(func,次){ 对于(x=0;x

我试图开发一个函数,它可以重复函数x的次数,只重复一次,而不是基于
settimerinterval
settimeout
或任何基于时间的东西。我不想直接使用while/for循环,我想使用这个repeat函数

我试过这样的方法:

function repeat(func, times) {
  for (x = 0; x < times; x++) {
    eval(func)
  }
}
函数重复(func,次){
对于(x=0;x<次;x++){
评估(职能)
}
}

但是
eval
对函数不起作用。

只需调用
func
和减量计数器,然后再次调用函数
repeat

函数重复(func,次){
func();
时间&&--times&&repeat(func,times);
}
重复(函数(){document.write('Hi
);},5)使用递归:

function repeat(fn, times) {
  var loop = function (times) {
    if (times) {
      fn(times);
      loop(--times);
    }
  }
  loop(times);
}

repeat(function (times) {
  console.log(times);
}, 5);

如果Lodash是一种选择,那么

我定义了一个函数。 我设置了重复功能的次数。 我制作了一个数组,大小为重复函数的次数。
我在数组的每个元素上运行“已定义函数”。

您还可以使用
setInterval
clearInterval

function runFunctionXTimes(callback, interval, repeatTimes) {
    let repeated = 0;
    const intervalTask = setInterval(doTask, interval)

    function doTask() {
        if ( repeated < repeatTimes ) {
            callback()
            repeated += 1
        } else {
            clearInterval(intervalTask)
        }
    }
} 

function sayHi() {
    console.log("Hi")
}

也可以将函数参数传递给
setInerval
,如果您不想使用循环或
setTimeout
,可以在此处阅读更多有关函数参数的信息。你还能用什么方法调用某个
n
次?您基本上排除了完成代码的所有可能性。为什么循环不好?func是js函数还是字符串?若函数是字符串,那个么它是如何定义的(在js中定义函数的方法很少)?显然不允许循环。。。这是无意义的OBV。根据数字,这可能是个坏主意,因为递归调用是有限的:@DiegoDupin,上面有一个退出条件。
function runFunctionXTimes(callback, interval, repeatTimes) {
    let repeated = 0;
    const intervalTask = setInterval(doTask, interval)

    function doTask() {
        if ( repeated < repeatTimes ) {
            callback()
            repeated += 1
        } else {
            clearInterval(intervalTask)
        }
    }
} 

function sayHi() {
    console.log("Hi")
}
runFunctionXTimes(sayHi, 0, 5)