JS在数组中返回next,循环往复



我有一个字符串列表,像这样;

var mystrings = [
    'apple',
    'banana',
    'orange'
]

我想要一个函数,我可以在任何时候调用来获得下一个字符串。当到达列表末尾时,重新开始并再次获得第一个。

我将它用于必须按列表顺序应用的CSS类列表,但当需要时,我不会在该列表上循环。

我想不出来,而且很难用谷歌搜索。什么好主意吗?

这是一个有趣的小函数:

function enumerator(array) {
    var index = 0;
    return function () {
        return array[index++%array.length]
    }
}

被这样调用:

var next = enumerator(["a", "b"]);
next(); // a
next(); // b
next(); // a
// 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();

使用外部索引变量并在每次调用时将其增加或重置为0

最新更新