如何在setInterval中获取数组值的升序?

时间:2013-10-23 09:58:01

标签: javascript jquery arrays

您好我使用setinterval函数来显示一些图像。我在数组中分配img src,然后通过数组显示所有图像。但问题是我使用随机选项来选择&在每个区间显示img。

var set = setInterval(function(){test();},2000);

function test() {
  var img = new Array("red","green","blue","orange","yellow","balck");
  var src = img[Math.floor(Math.random()*img.length)];
  $(body).append(src);
}

以上代码是我试过的样本

现在我想按升序排列,就像阵列中的顺序一样,我应该能够看到图像。

我在for loop内想到setInterval,但会在每个间隔中显示所有图片。我不想那样。我想按升序获得每个图像的每个图像。

将任何变量设置为0并在结尾处递增它也没有用,因为一旦完成间隔,它将再次开始另一次执行,并在函数开始时设置为0。

是否有可能计算setInterval中已经过的间隔数,因为ecah图像可以很容易地显示

有任何想法要做到这一点吗?

2 个答案:

答案 0 :(得分:0)

您可以使用全局variable并将其递增以显示数组的增量index。当索引达到数组的长度时,您可以将其设置为zero以使其循环。

var set = setInterval(function(){test();},2000);
currentIndex = 0;
function test() {
  var img = new Array("red","green","blue","orange","yellow","balck");
  if(currentIndex == img.length) 
      currentIndex = 0;
  var src = img[currentIndex++];
  $(body).append(src);
}

答案 1 :(得分:0)

您可以在脚本块中的函数外部声明一个var作为全局变量,然后您可以在函数中设置它并在每次调用后递增它,直到达到数组的限制并且一旦达到限制重置为0。