Sinds 2015 heeft EcmaScript6 (ES6) veel vooruitgang geboekt op het gebied van JavaScript-codering. Talloze moderne concepten werden geïntroduceerd in JavaScript, waardoor de codeerervaring aanzienlijk werd verbeterd. In dit artikel leer je over iterators en generators in JavaScript.
Iterators en generatoren zijn twee verschillende concepten, maar ze worden op vergelijkbare manieren gebruikt. Ze worden gebruikt om arrays en objecten in JavaScript te doorlopen.
iterators
Iterators zijn als geavanceerde loops die kunnen worden gepauzeerd. Iterators bestaan uit de functie next() , die de waarde en de status gereed retourneert. Het waardeveld is de waarde in de array bij een bepaalde index. done is de booleaanse waarde die de status van voltooiing voor de iteratie door de lus retourneert.
Hier is een voorbeeld dat laat zien hoe iterators:
function fruitIter(fruits){ let index = 0; return { next: function(){ return index < fruits.length="" {="" value:="" fruits[index++],="" done:="" false="" }="" :="" {done:=""> } } } const fruitsArray = ["Mango", "Banana", "Grapes"]; const fruits = fruitIter(fruitsArray); console.log(fruits.next().value);
Uitgang :
Mango
Wanneer u de fruitsArray- array in de methode fruitIter() doorgeeft , retourneert deze een iterator die is opgeslagen in de fruits- variabele. De index variabele in de fruitIter () methode wordt geïnitialiseerd op 0. Deze methode retourneert de volgende () functie die helpt bij het doorlussen van de array . De functie next() controleert of de index kleiner is dan fruitsArray- lengte. Als dat zo is, retourneert het twee variabelen: de vruchtnaam bij die index en de status ' klaar' . Terwijl deze waarden worden geretourneerd, wordt ook de indexwaarde verhoogd.
Om te controleren hoe deze methode werkt en om de fruitnaam af te drukken, moet u de functie next() in de fruit- iterator aanroepen en toegang krijgen tot de waarde ervan.
Gerelateerd: Wat is een functie in programmeren?
Generatoren
Generators zijn vergelijkbaar met Iterators, maar ze retourneren meerdere waarden. Deze waarden worden opbrengstwaarden genoemd. Generatorfuncties worden geschreven met behulp van de functie*-syntaxis . * geeft aan dat het geen normale functie is, maar een generator. Hier is een voorbeeld van generatoren:
function* printFruits(){ yield "Mango"; yield "Banana"; yield "Grapes"; } const fruit = printFruits(); console.log(fruit.next());
Uitgang :
{value: 'Mango', klaar: false}
In dit voorbeeld is opbrengst de iterator. Wanneer u de functie printFruits() en print fruit.next() aanroept , krijgt u een object waar u de waarde vandaan haalt. De status klaar geeft aan of alle waarden zijn herhaald.
Leer gegevensstructuren met behulp van ES6-klassen in JavaScript
JavaScript ES6 bracht veel vooruitgang in coderingspraktijken. Niet de minste daarvan is het bouwen van datastructuren met behulp van ES6-klassen. Duw. pop, en stapel je een weg naar de top en word een JavaScript-professional!