Mam listę łańcuchów takimi jak;

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

Chciałbym, aby funkcja mogę zadzwonić w dowolnym momencie, aby uzyskać następny ciąg. A gdy zakończenie końca listy rozpocznij się i ponownie zdobądź pierwszy.

Używam go do listy klas CSS, które należy zastosować w kolejności z listy, ale nie będę pętli na tej liście, gdy są potrzebne.

Nie mogę tego wymyślić i ciężko jest Google. Jakieś pomysły?

3
Mathias Nielsen 12 październik 2011, 23:13

2 odpowiedzi

// 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();
1
Michael Berkowski 12 październik 2011, 19:25

Użyj zewnętrznej zmiennej indeksu i przyrostu lub zresetuj go na 0 na każdym połączeniu

-1
Adam Bergmark 12 październik 2011, 19:14