我试图调用一个函数,并在每次调用时返回一个新字符串。如果它被调用并且所有字符串都已被调用,那么它将循环回到开始。
伪代码:
function getString(){
var array = ['1','2','3','4'];
// JS Magic??
return finalVal;
}
预期魔术:
getSting();
1
getSting();
2
getSting();
3
getSting();
4
getSting();
1
getSting();
2
你明白了我的想法。
谢谢!
答案 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());