Iterator
Home

Iterator

Iterator

Het laatste voorbeeld van een sluiting illustreert hoe je met een sluiting een iterator kan implementeren.

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

JI
2016-10-04 18:00:52