单击循环数组

Mdd*_*Mdd 2 javascript

我想知道如何循环浏览数组中的值?显示数组的最后一个值时,下一次单击应再次显示该数组的第一个值.

我认为我很接近,但是当我到达数组的最后一个值时,我必须再次点击两次才能再次显示第一个值.

这是我的JavaScript:

var myArray = ["red", "yellow", "green"];
var myIndex = 1;
var print = document.getElementById('print');

print.innerHTML = myArray[0]; //Print first value of array right away.

function nextElement() {
  if (myIndex < myArray.length) {
     print.innerHTML = myArray[myIndex];
     myIndex++;
  }
  else {
     myIndex = 0;   
  }
};
Run Code Online (Sandbox Code Playgroud)

这是我的HTML:

<p>The color is <span id="print"></span>.</p> 

<a id="click" href="#" onclick="nextElement();">Click</a>
Run Code Online (Sandbox Code Playgroud)

如果有用的话,这是一个小提琴:

http://jsfiddle.net/jBJ3B/

Men*_*los 7

您可以像这样使用模运算符:

function nextElement() {
  print.innerHTML = myArray[myIndex];
  myIndex = (myIndex+1)%(myArray.length);
  }
};
Run Code Online (Sandbox Code Playgroud)

请参阅:http://jsfiddle.net/jBJ3B/3/

更极端的是(正如zdyn写的那样):

function nextElement() {
   print.innerHTML = myArray[myIndex++%myArray.length];
};
Run Code Online (Sandbox Code Playgroud)

请参阅:http://jsfiddle.net/jBJ3B/5/