如何创建一个javascript函数,在每次调用时显示列表的不同值?

如何创建一个javascript函数,在每次调用时显示列表的不同值?,javascript,function,Javascript,Function,我想要一个javascript函数(显示列表的元素),每次我调用这个函数时,它都会返回列表中不同的元素。因此,我调用它并显示第一个元素,然后我再次调用它并显示第二个,以此类推……有没有办法做到这一点?您可以使用下面的函数洗牌数组,然后显示 function shuffle(array) { var currentIndex = array.length, temporaryValue, randomIndex; // While there remain elements to shu

我想要一个javascript函数(显示列表的元素),每次我调用这个函数时,它都会返回列表中不同的元素。因此,我调用它并显示第一个元素,然后我再次调用它并显示第二个,以此类推……有没有办法做到这一点?

您可以使用下面的函数洗牌数组,然后显示

function shuffle(array) {

  var currentIndex = array.length, temporaryValue, randomIndex;

 // While there remain elements to shuffle...
 while (0 !== currentIndex) {

  // Pick a remaining element...
   randomIndex = Math.floor(Math.random() * currentIndex);
   currentIndex -= 1;

  // And swap it with the current element.
   temporaryValue = array[currentIndex];
   array[currentIndex] = array[randomIndex];
   array[randomIndex] = temporaryValue;
}

 return array;
}
使用类似于

function* nextInList(list) {
  var i = 0;
  while (i < list.length)
    yield list[i++];
}

var gen = nextInList([10,9,8,7,6,5,4,3,2,1]);

gen.next().value // 10
gen.next().value // 9
// ...
函数*nextInList(列表){
var i=0;
while(i
您可以将出色的MDN示例用于,并将其用于阵列

对于每个间隔,使用
next()
调用迭代器,然后检查值。如果完成,请清除间隔或显示属性

函数生成迭代器(数组){
var-nextIndex=0;
返回{
下一步:函数(){
返回nextIndex}, 1000);                            // 如需将分钟间隔更改为60000
是,有:)请参考并提供必要的详细信息使用数组和随机选取元素。人们更喜欢你先尝试你要问的,然后发布一些代码。关于随机数组项的问题已经很多了。您可以使用
Math.random()
从数组中获取随机值-您还可以在每次调用函数时从数组中弹出第一个值并将其返回给调用方。它称为生成器函数。可能有用:注意:这种方法在IE中不起作用。Nina的方法是跨浏览器兼容的。