在返回值时重复函数X次

时间:2018-02-12 10:17:14

标签: javascript loops repeat

我有一个代码,它接受一个整数的用户输入" X"然后重复Math.ceil(X/3)次,所以我用了它。让" X"在这个例子中是10



function repeat(func, times) {
	func();
	--times && repeat(func, times);
}
function test() {
	console.log('test');
}

repeat(function() { test(); }, Math.ceil(10 / 3));




我想稍微调整一下,以便代码返回多少" X"减去直到它达到0,但如果最终值为负,它将返回" X"剩下的数量。对不起,如果这听起来很混乱,我的意思是进一步澄清我的目标:

/* The user inputs X as 10
I would like the ouput to look like this: */
"test 3" //10-3=7 so 7 left, return 3 to output
"test 3" //7-3=4 so 4 left, return 3 to output
"test 3" //4-3=1 so 0 left, return 3 to output
"test 1" //1-3=-2 would be less than 0, so do 1-1 instead and that results to 0, return 1 to output and end loop

1 个答案:

答案 0 :(得分:1)

您需要将实际数字传递给repeat ,而不仅仅是10/3的结果,因为它不会知道何时停止。

<强>演示

function repeat(func, num1, num2 ) 
{
  num1 > num2 ? func(num2) : func(num1);
  if ( num1 > num2 )
  {
     num1 -= num2;
     repeat(func, num1, num2);
  }
}

function test(times) {
  console.log('test', times)
}

repeat(test, 10, 3);