我目前正在尝试在函数中循环数组。该函数应该用于一个按钮,当按下它时,每次都会给出与数组不同的值。
var list=['DEFAULT','ADVANCED','DEVELOPMENT'];
每次用户点击按钮时,我都需要数组中的下一个值。 (当它的"发展",接下来应该是#34; DEFAULT")。是否可以在不使用全局变量的情况下完成?
答案 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>