Javascript 大小写、setinterval和仅列出选定数组

Javascript 大小写、setinterval和仅列出选定数组,javascript,while-loop,setinterval,Javascript,While Loop,Setinterval,我正在尝试创建interval函数,它将每10秒更改所选的div。当我在第一页时,我希望它显示来自第一个数组的项目,当我在第二页时,我希望显示数组2,等等。这是我到目前为止得到的: var timedFunc = ''; var index= new Array(20) index[0]="index1"; index[1]="index2."; .. var indextwo= new Array(20) indextwo[0]="index1"; indextwo[1]="index2";

我正在尝试创建interval函数,它将每10秒更改所选的div。当我在第一页时,我希望它显示来自第一个数组的项目,当我在第二页时,我希望显示数组2,等等。这是我到目前为止得到的:

var timedFunc = '';
var index= new Array(20)
index[0]="index1";
index[1]="index2.";
..

var indextwo= new Array(20)
indextwo[0]="index1";
indextwo[1]="index2";

var tmp = 0;
function display_index(nameofarray) {
if (tmp < 0) { tmp = nameofarray.length-1; }
if (tmp > nameofarray.length-1) { return false; }
document.getElementById('robot').innerHTML = nameofarray[tmp];
tmp = tmp + 1;
}
function indexInterval(m) {
  switch(m) {
    case 1: timeFunc = setInterval("display_index(index)",1000);
    case 2: timeFunc = setInterval("display_index(indextwo)",1000);
    case 3: timeFunc = setInterval("display_index(indexthree)",1000);
    case 4: timeFunc = setInterval("display_index(indexfour)",1000);
  }
}
var timedFunc='';
var索引=新数组(20)
索引[0]=“index1”;
索引[1]=“index2。”;
..
var indextwo=新数组(20)
indextwo[0]=“index1”;
indextwo[1]=“index2”;
var-tmp=0;
函数显示索引(数组名称){
如果(tmp<0){tmp=nameofarray.length-1;}
如果(tmp>nameofarray.length-1){返回false;}
document.getElementById('robot').innerHTML=nameofarray[tmp];
tmp=tmp+1;
}
函数索引间隔(m){
开关(m){
案例1:timeFunc=setInterval(“显示索引(index)”,1000);
案例2:timeFunc=setInterval(“display_index(indextwo)”,1000;
案例3:timeFunc=setInterval(“display_index(indexthree)”,1000;
案例4:timeFunc=setInterval(“显示索引(indexfour)”,1000;
}
}

要在间隔计时器上循环数组,可以将所需数组传递给函数,然后使用该函数在间隔计时器上循环数组,如下所示:

var index0 = ["text1", "text2", "text3"];
var index1 = ["text1", "text2", "text3"];

function startMyInterval(array) {
    var index = 0;
    var item = document.getElementById('robot');
    setInterval(function() {
        // if we reached the end of the array, start back at beginning
        if (index >= array.length) {
            index = 0;
        }
        item.innerHTML = array[index]; 
        ++index;
    }, 10000);
}

// figure out which array of text values you want to use
// for this particular page index0 or index1
// and pass that array to startMyInterval()
startMyInterval(x);

这种类型的实现避免了
switch
语句,并避免将文本传递到
setInterval()
。它还使用函数闭包来跟踪
setInterval()
回调需要的状态。

不清楚您试图实现什么。在不讨论您的实现的情况下,请描述您正试图实现的目标。在主页面上,我希望每隔10秒显示第一个数组中的项目(文本),在另一个页面(例如注册页面)上,我希望它显示其他数组中的项目(注册提示)和实现:body(onLoad=“searchInterval()”)#cloud div.robot(id=“robot”)+1,以确保工作顺利进行。只需向用户1427907提供有关数组的注释,通常要显示消息的页面应该在这些页面中定义数组,而不是在不同的数组中定义所有消息。关于您的代码,最好在
startMyInterval
函数中检查数组是否存在。谢谢大家!@方湾洲-OP可以添加任何适合其情况的错误检查。如果没有向函数传递数组,它将抛出一个异常,该异常似乎是适当的,因为函数未被正确使用,但显然,任何使用此代码的人都可以提供检查其需要的任何参数。@user1427907-因为您是StackOverflow新手,您是否意识到,如果您收到回答您问题的答案,您应该单击该答案左侧的复选标记,以向其他读者表明该答案是最佳答案,并且您的问题现在已得到回答?这也会奖励那些提供答案的人一些声誉积分,并且你自己也会因为遵循程序而获得一些积分。