I denne opplæringen lærer du om JavaScript for … av loop ved hjelp av eksempler.
I JavaScript er det tre måter vi kan bruke en for
løkke på.
- JavaScript for loop
- JavaScript for … i løkke
- JavaScript for … of loop
Den for… of
sløyfen ble introdusert i senere versjoner av Javascript ES6 .
Den for… of
sløyfe i Javascript lar deg iterere over iterable objekter (arrays, sett, kart, strenger osv).
JavaScript for … of loop
Syntaksen til for… of
sløyfen er:
for (element of iterable) ( // body of for… of )
Her,
- iterable - et iterabelt objekt (array, sett, strenger, etc).
- element - elementer i iterabelen
På vanlig engelsk kan du lese koden ovenfor som: for hvert element i iterabelen, kjør løkken.
for … av med Arrays
Den for… of
sløyfe kan brukes for å iterere over en matrise. For eksempel,
// array const students = ('John', 'Sara', 'Jack'); // using for… of for ( let element of students ) ( // display the values console.log(element); )
Produksjon
John Sara Jack
I det ovennevnte programmet brukes for… of
sløyfen til å gjenta over studentens array-objekt og vise alle verdiene.
for … av med strenger
Du kan bruke for… of
loop til å gjenta over strengverdier. For eksempel,
// string const string = 'code'; // using for… of loop for (let i of string) ( console.log(i); )
Produksjon
kode
for … av med sett
Du kan gjenta gjennom Set-elementer ved hjelp av for… of
loop. For eksempel,
// define Set const set = new Set((1, 2, 3)); // looping through Set for (let i of set) ( console.log(i); )
Produksjon
1 2 3
for … av med Maps
Du kan gjenta gjennom kartelementer ved hjelp av for… of
løkken. For eksempel,
// define Map let map = new Map(); // inserting elements map.set('name', 'Jack'); map.set('age', '27'); // looping through Map for (let (key, value) of map) ( console.log(key + '- ' + value); )
Produksjon
navn- Jack alder- 27
Brukerdefinerte Iteratorer
Du kan opprette en iterator manuelt og bruke for… of
løkken til å iterere gjennom iteratorene. For eksempel,
// creating iterable object const iterableObj = ( // iterator method (Symbol.iterator)() ( let step = 0; return ( next() ( step++; if (step === 1) ( return ( value: '1', done: false); ) else if (step === 2) ( return ( value: '2', done: false); ) else if (step === 3) ( return ( value: '3', done: false); ) return ( value: '', done: true ); ) ) ) ) // iterating using for… of for (const i of iterableObj) ( console.log(i); )
Produksjon
1 2 3
for … av med generatorer
Siden generatorer er iterables, kan du implementere en iterator på en enklere måte. Deretter kan du gjenta gjennom generatorene ved hjelp av for… of
løkken. For eksempel,
// generator function function* generatorFunc() ( yield 10; yield 20; yield 30; ) const obj = generatorFunc(); // iteration through generator for (let value of obj) ( console.log(value); )
Produksjon
10 20 30
for … av Vs for … i
for … av | for i |
---|---|
Den for… of koplingssløyfe anvendes til å iterere gjennom verdiene for et iterable. | Den for… in koplingssløyfe anvendes til å iterere gjennom nøklene til et objekt. |
Den for… of sløyfe kan ikke brukes til å iterere over et objekt. | Du kan bruke for… in til å itere over en iterabel slike matriser og strenger, men du bør unngå å bruke for… in for iterables. |
Den for… of
løkke ble innført i ES6 . Noen nettlesere støtter kanskje ikke bruken av den. For å lære mer, besøk JavaScript for … av Support.