Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.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 如何获取变量';递归函数的s值_Javascript_Recursion - Fatal编程技术网

Javascript 如何获取变量';递归函数的s值

Javascript 如何获取变量';递归函数的s值,javascript,recursion,Javascript,Recursion,请看代码。我无法从此displayNextSlide()函数中获取变量的值。我想让另一个变量在递归停止后获取索引的值。我希望tempIndex在递归之后具有索引的值 var指数=0; 设tempIndex=0; var x=document.getElementsByClassName(“mySlides”); 函数displayNextSlide(){ 对于(变量i=0;i

请看代码。我无法从此displayNextSlide()函数中获取变量的值。我想让另一个变量在递归停止后获取索引的值。我希望tempIndex在递归之后具有索引的值

var指数=0;
设tempIndex=0;
var x=document.getElementsByClassName(“mySlides”);
函数displayNextSlide(){
对于(变量i=0;i

测试
迈斯利德斯先生{
显示:无;
}
幻灯片放映测试
1.
2.
3.
4.
5.
6.
7.
8.
9
10

您只需在函数内部设置
tempIndex
的值,
tempIndex
变量将更新为新值,您可以使用另一个
setInterval
检查该值,例如:

//这些变量是全局变量
var指数=0;
var stopTheSlideshow=true;
无功电流间隔;
//函数启动和停止设置间隔
函数startStop()
{
如果(停止幻灯片放映)
{
停止滑动显示=错误;
currentInterval=setInterval(displayNextSlide,500);
}
else stop theslideshow=true;
}
函数displayNextSlide()
{
var x=document.getElementsByClassName(“mySlides”);
如果(停止幻灯片放映)
{
clearInterval(当前间隔);
log('tempIndex现在是'+tempIndex');
}
//兜圈子
如果(tempIndex==x.length)tempIndex=0;
对于(变量i=0;i
.mySlides
{
显示:无;
}

测试
幻灯片放映测试

这里没有递归。您在一段时间内调用同一个函数。我在这里没有看到任何递归?即使您使用了带有
setTimeout
的递归方法,也不需要使用console.log(index);仅打印一次,因此您无法看到更改的索引值。调用函数以显示最新的索引值!!如果只需要console.log,请将console.log(index)放在
index++
Yes之后,我只想复制索引的值。可能还有其他变量。嗨,我试过了。我的目的是一个接一个地显示图像。”tempindex'具有图像的当前索引。下次函数调用时,tempIndex中将显示图像。@Oreodad我编辑它是为了提供一个我认为您需要的示例。我添加了一个按钮,您可以测试
start/stop
并查看其工作原理,还可以测试
tempIndex
以查看当前值。
currentInterval
变量在所有函数之外声明,因此它成为
global
,因此我们所要做的就是不断地将
setInterval
分配给该变量,以便我们知道如何停止计时器。如果您希望立即自动启动setInterval,则需要更改
var stopTheSlideshow=false并添加
currentInterval=setInterval(displayNextSlide,500)在底部。