每次用户点击按钮时,我都需要Javascript中数组的下一个值

时间:2015-05-20 23:40:42

标签: javascript arrays

我目前正在尝试在函数中循环数组。该函数应该用于一个按钮,当按下它时,每次都会给出与数组不同的值。

var list=['DEFAULT','ADVANCED','DEVELOPMENT'];

每次用户点击按钮时,我都需要数组中的下一个值。 (当它的"发展",接下来应该是#34; DEFAULT")。是否可以在不使用全局变量的情况下完成?

2 个答案:

答案 0 :(得分:3)

如果您对更改数组chiliNUT's answer没问题,那么(shift / push可以实现循环缓冲区。)

或者,您可以保持当前选择并使用%循环。要避免全局变量将函数包装在函数中以捕获值。

示例(假设使用JQuery,您可以自己找到等效的addEventListener代码):

  $(function()
  {
       // outside of click handler to be able to preserve values between clicks 
       var current = 0;
       $("button.next").click(function()
        {
            alert(list[current]);
            current = (current + 1) % list.length;
        });
  }

  <button class="next">Next</button>

答案 1 :(得分:1)

像这样的事情。 shift拉出第一个元素。 push将其发送到后面。

var list=['DEFAULT','ADVANCED','DEVELOPMENT'];
function nextWord() {
var word=list.shift();
list.push(word);
console.log(word);
return word;
}

nextWord();//DEFAULT
nextWord();//ADVANCED
nextWord();//DEVELOPMENT
nextWord();//DEFAULT
nextWord();//ADVANCED
nextWord();//DEVELOPMENT
//...

<button onclick=nextWord()>Next Word</button>