JS - 调用函数并从每个新调用的数组中接收新值

时间:2017-03-23 10:58:25

标签: javascript

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

伪代码:

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

预期魔术:

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

你明白了我的想法。

谢谢!

1 个答案:

答案 0 :(得分:3)

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

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());