Iterator
Beschrijving
Je weet al hoe je met een lus een eenvoudige array kan doorlopen, maar er kunnen zich gevallen voordoen waar je niet gewoon door de array wilt lopen maar een ingewikkelder parcours wilt afleggen. Je wilt bijvoorbeeld iets doen met het n-de element maar daarvoor moet je weten wat er in het volgende of vorige element zit. We geven een voorbeeld met een array met een eenvoudige datastructuur. Hier volgt een initialisatie functie die als argument een array aanneemt en ook een geheime pointer definieert met de naam i, die altijd naar het volgende element in de array verwijst:
function init(x) { var i = 0; return function () { return x[i++]; }; }
Je maakt de functie met de naam volgende door de init() functie op de roepen en een array als argument mee te geven:
var volgende = init([1, 5, 10, 15]);
Telkens je de functie volgende()
uitvoert krijg je de waarde van het volgende element:
volgende() // totdat je aan het einde van de array komt; 1 volgende(); 5 volgende(); 10 volgende(); 15 volgende(); undefined