String iterasjonsmetoder i JavaScript

String iterasjonsmetoder i JavaScript

I JavaScript er en streng iterator en metode som tillater å krysse tegnene som er til stede i en streng. Ved å bruke JavaScript String Iterator, aktiverer vi strengen som er lagt til i koden vår for å definere deres tilpassede iterasjonsatferd. For å lage en streng iterator, kan du enten bruke det innebygde JavaScript "String @@ iterator -metode”Eller gå for den brukerdefinerte streng-iteratoren, som kan opprettes ved hjelp av“Generatorer”.

Denne oppskrivningen vil diskutere streng iterasjonsmetoder i JavaScript. Videre vil eksemplene relatert til strengen @@ iterator -metoden og JavaScript -generatorer også bli demonstrert. Så la oss starte!

String @@ iterator -metode i JavaScript

String iterasjonsmetoden i JavaScript lar deg iterere over den ekstra strengen i programmet ditt. Du kan lage hvilken som helst streng iterable ved å implementere "@@ iterator”Metode. Strengen “@@ iterator”Metode returnerer et iteratorobjekt som itererer over all koden pekt på den ekstra strengen.

String [@@ iterator]”Metode er en innebygd JavaScript-egenskap til en streng. Ved å ringe “@@ iterator”Strengegenskap, kan du opprette en streng iterator, og i stedet for“@@ iterator,”Du må bruke“Symbol.iterator”Som konstant.

Syntaks av streng iteratormetode

var iterator = str [symbol.iterator] ();

Her, “iterator”Er navnet på vår streng iterator, og strengen som må itereres er representert som“str”.

Bruke String @@ iterator -metode med neste ()

I JavaScript -koden din kan du få streng -iteratorobjektet ved hjelp av “Next ()” -metoden. "Next ()" -metoden gir ut nøklene "Verdi" og "Ferdig" som omfatter en boolsk verdi. Verdidøkkelen inneholder gjeldende nøkkelverdi. Den ferdige nøkkelen indikerer at hvis verdien hentes eller ikke, med “True” og “False” verdi, hvor “ekte”Representerer at iterasjonsprosessen er ferdig og“falsk”Betegner at det eksisterer flere verdier for iterasjonen.

La oss nå sjekke ut noen JavaScript -eksempler relatert til String @@ iterator -metoden.

Eksempel 1: Bruke String @@ iterator -metode uten loop

Dette eksemplet vil vise deg hvordan du bruker String @@ iterator -metoden i JavaScript -programmet ditt for å iterere en spesifikk streng. For dette formålet, først og fremst, vil vi streng ha 'Mn'Som dens verdi:

var str = 'mn';

I neste trinn lager vi en streng iterator for vår "str”String:

var iterator = str [symbol.iterator] ();

Hvis du ikke vil bruke løkker til iterasjonen, må du påkalle "Neste ()”Metode i henhold til lengden på strengen din. For eksempel vil vi utføre "iterator.Neste ()”Metode tre ganger. For de to første gangene "Ferdig”Verdien vil returnere falsk, og når vi påkaller den spesifiserte metoden en tredje gang, vil den returnere“ekte”Ettersom iterasjonen er fullført og ingen verdi overlates til å iterere:

konsoll.Logg (iterator.neste ()); // verdi: "m", gjort: falsk
konsoll.Logg (iterator.neste ()); // verdi: "n", gjort: falsk
konsoll.Logg (iterator.neste ()); // verdi: udefinert, gjort: true

Ta en titt på den medfølgende koden og dens utdata:

Eksempel 2: Bruke String @@ iterator -metode med for loop

Du kan også bruke “løkker”For å håndtere den gjentatte oppgaven med streng iterasjon. Vil vite hvordan? Hvis ja, så følg det undergitte eksemplet.

For det første vil vi definere en streng "str”Som vi ønsker å lage en streng”iterator”:

const str = 'mnm';
const iterator = str [symbol.iterator] ();

Deretter vil vi tildele verdien av "iterator.Neste ()”Funksjon til vår“thechar”Variabel:

La TheChar = iterator.neste ();

Deretter vil vi legge til en enkel “for sløyfe,”Som vil utføre iteratoren i henhold til strenglengdeegenskapen”str.lengde”. For hver iterasjon av for -loopen vil nøkkelverdien og den ferdige verdien vises til konsollvinduet, og "thechar”Vil deretter flytte til neste streng iterasjon:

for (la i = 0; i < str.length ;i++)
konsoll.Logg (TheChar.Verdi, Thechar.gjort);
thechar = iterator.neste ();

Her er det komplette utseendet til det oppgitte eksemplet sammen med dets utdata:

Eksempel 3: Bruke String @@ iterator -metode med for ... av loop

Bruke for ... av loop, kan du bruke @@ iterator -metoden for å iterere over strengdataene. For hver for-of loop-iterasjon, må du ringe "Neste () -metode.verdi”For iterasjonsformålet.

For eksempel har vi definert en enkel streng som har "MNM”Som dens verdi i vårt JavaScript -program:

const str = 'mnm';

I neste trinn lager vi en streng iterator for vår ekstra "str”String:

const iterator = str [symbol.iterator] ();

Etter det vil vi tilordne iteratorverdien til “thechar”Variabel, som vil iterere verdien ved å bruke“Neste ()”Metode i for -loop:

const iterator = str [symbol.iterator] ();

Til slutt kan du legge til "for ... av”Loop for å iterere over“str”Streng som følger:

// ved å bruke for-of-loopen
konsoll.logg ("iterere med for-of loop:")
for (la jeg av str)

konsoll.Logg (i)

Det undergitte bildet viser utdataene fra vårt JavaScript-program:

Generatorer i JavaScript

Generatorer er en annen nyttig funksjon i JavaScript som tillater deg å definere en funksjon og deretter bruke den til å lage strengen Iterator. Denne prosedyren er mindre utsatt for feil og tilbyr en effektiv måte å lage streng iteratorer.

Syntaks av generatorer

For å bruke generatoren i JavaScript-programmet ditt, må du følge den undergitte syntaks:

funksjon* ()
gi "karakter1"
avkastning "karakter2"
..

Her, “*”Indikerer at vi lager en anonym funksjon. Nøkkelordet “utbytte”Legges til for å fungere utførelsen og returnerer iteratorobjektet. Etter å ha gjort det, vil det igjen gjenoppta driften.

Eksempel: Opprette brukerdefinert streng iterator i JavaScript

I JavaScript kan du også opprette en brukerdefinert streng iterator ved å bruke generatorer. For å gjøre det, først lage en "myiterator”Objekt:

var myiterator = ;

Nå, definer generatorfunksjonen mens du spesifiserer punktet der utførelsen vil ta en pause med "utbytte”Nøkkelord. Når generatorfunksjonen blir påberopt, en “kalt”Streng vises i konsollvinduet vårt:

myiterator [symbol.iterator] = funksjon*()
konsoll.logg ("kalt");
gi "m";
utbytte "n";
utbytte "o";
;
[... myiterator];

Etter dette punktet vil alle feltverdiene bli lagt til "myiterator”Objekt:

konsoll.Logg ("Felt lagt til");
konsoll.logg (myiterator);

Her er utgangen som vi fikk fra å utføre det ovennevnte eksemplet:

Konklusjon

Ved hjelp av String @@ iterator -metoden og generatorene kan du enkelt utføre streng iterasjonsprosessen i JavaScript. String @@ iterator -metoden implementerer iteratorprotokollen, inkludert neste () -metode, som returnerer tegnene fra Collection med to egenskaperverdier og gjort. Mens generatorer lar deg lage en brukerdefinert streng iterasjonsmetode der du kan legge til pausepunktet for iterasjonen i henhold til dine krav. Denne oppskrivningen diskuterte streng iterasjonsmetoder i JavaScript. Dessuten er eksemplene relatert til strengen @@ iterator -metoden og generatorer også demonstrert.