我试图调用一个函数,并使其每次调用时都返回一个新字符串。如果调用了它,并且所有字符串都被调用了,那么它将循环返回到开始。

伪代码:

function getString(){
    var array = ['1','2','3','4'];
    // JS Magic??
    return finalVal;
}


预期魔术:

getSting();
1
getSting();
2
getSting();
3
getSting();
4
getSting();
1
getSting();
2


我确定你的想法。

谢谢!

最佳答案

您可以使用范围来保留当前索引。这样的事情。

var getString = (function(arr, i) {
   return function(){
       return arr[(i++)%arr.length]
   }
}(['1','2','3','4'], 0))




var getString = (function(arr, i) {
       return function(){
           return arr[(i++)%arr.length]
       }
    }(['1','2','3','4'], 0))
console.log(getString());
console.log(getString());
console.log(getString());
console.log(getString());
console.log(getString());
console.log(getString());
console.log(getString());

关于javascript - JS-调用函数并在每次新调用时从数组接收新值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42974073/

10-11 12:03