De JavaScript for-loop, en welke loop u moet gebruiken

JavaScript-loops vergeleken

De JavaScript for-loop en alle andere loops, live vergeleken | We.Inc

for, for...of, for...in, while, do...while en forEach naast elkaar. Draai elke loop op een array, een string, een object of een Map en zie de output, of de fout die hij gooit.

Een klassieke for-loop heeft drie delen: for (let i = 0; i < arr.length; i++) { ... }. Gebruik hem als u de index of een eigen stapgrootte nodig hebt. Gebruik for...of voor gewone waarden, for...in of Object.entries voor de keys van een object, en while als u niet vooraf weet hoeveel rondes u nodig hebt.

Welke loop past bij de taak

Elke loop op deze pagina herhaalt code, maar ze verschillen in wat ze u per ronde geven, waarover ze kunnen lopen en hoe u eruit komt. Met de runner hieronder richt u elke loop op vier soorten data en ziet u de echte output, waardoor fouten zoals for...in op een array of for...of op een gewoon object makkelijk op te sporen zijn.

Veelgestelde vragen

Wat is het verschil tussen for...of en for...in?

for...of geeft u waarden uit alles wat iterable is, zoals de items van een array of de tekens van een string. for...in geeft u propertynamen als strings, inclusief overgeërfde enumerable properties. Op een array levert for...in '0', '1', '2' op in plaats van de items.

Hoe breek ik uit een forEach-loop?

Dat kan niet, behalve door een fout te gooien. Stap over op for...of, dat break ondersteunt, of op some, every, find of findIndex, die vanzelf stoppen zodra ze een antwoord hebben.

Hoe loop ik over een object in JavaScript?

Gebruik for (const [key, value] of Object.entries(obj)). Dat behandelt alleen de eigen keys van het object en geeft u beide delen. for...of rechtstreeks op een gewoon object gooit TypeError: obj is not iterable.

Hoe verlaat ik twee geneste loops tegelijk?

Zet een label vóór de buitenste loop en gebruik het met break: outer: for (...) { for (...) { if (found) break outer; } }. continue outer springt in plaats daarvan naar de volgende ronde van de buitenste loop.

Hoe loop ik achteruit?

Begin bij de laatste index en tel af: for (let i = arr.length - 1; i >= 0; i--). Dit is ook de veilige manier om items met splice te verwijderen tijdens het lopen, omdat de posities die u nog moet bezoeken niet verschuiven.

De drie delen van een for-loop lezen

break, continue en labels

Looppatronen om te kopiëren

Klassieke for, vooruit, achteruit en in stappen

Verander de start, de conditie of de stap om te tellen zoals u wilt.

for...of met de index

entries() koppelt elke waarde aan haar positie, zodat u beide krijgt zonder teller.

while en do...while

do...while controleert de conditie na de body, dus de body draait één keer, ook als de conditie vanaf het begin false is.

Geneste loops verlaten met een label

break grid stopt beide loops zodra de eerste overeenkomst is gevonden.

Elk item op volgorde awaiten

for...of pauzeert bij elke await. Dezelfde code binnen forEach zou elke request tegelijk starten en niet wachten.

Loop-runner

Kies een loop en wat data. De loop draait echt, en elke ronde staat hieronder.

Loop

Data

Array

String

Gewoon object

Map

break na de derde ronde

Wat er draait

Output

Ronde {n}: {v}

forEach heeft geen break. De return in de callback beëindigt alleen die ene aanroep, dus elke ronde draait nog steeds.

Gooit {v}

Gratis beginnen · Geen creditcard nodig

Gerelateerd: Gidsen

Product

Voor wie

Functies

Bronnen

Bedrijf

Sitemap