Javascript将函数重复x次
我试图开发一个函数,它可以重复函数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
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)