我有一个像这样的字符串列表;
var mystrings = [
'apple',
'banana',
'orange'
]
我想要一个我可以随时调用的函数来获取下一个字符串。 当达到列表的末尾时,重新开始并再次获得第一个。
我将它用于必须按照列表顺序应用的CSS类列表,但是在需要时我不会循环遍历该列表。
我无法弄明白,谷歌有点难。 有什么想法吗?
答案 0 :(得分:6)
这是一个有趣的小功能:
function enumerator(array) {
var index = 0;
return function () {
return array[index++%array.length]
}
}
这样叫:
var next = enumerator(["a", "b"]);
next(); // a
next(); // b
next(); // a
答案 1 :(得分:1)
// Your array is declared in global scope
var mystrings = [
'apple',
'banana',
'orange'
];
// A global index variable...
var strIndex = 0;
function getNextString() {
// If you reached the end of the array, reset to 0
if (strIndex === mystrings.length - 1) {
strIndex = 0;
return mystrings[strIndex];
}
// Otherwise, increment it and return the new value
else return mystrings[++strIndex];
}
// Call it as
var currentString = getNextString();
答案 2 :(得分:-1)
使用外部索引变量并在每次调用时将其递增或重置为0