6 of 17 menu

Fejl ved gennemløb af array med for-in loop i JavaScript

Til at gennemløbe et array bør du bruge et for-of loop. Nogle gange forsøger begyndere dog fejlagtigt at anvende et for-in loop. Lad os se på de karakteristiske kendetegn for denne fejl.

Lad os sige, at vi har et array:

let arr = ['a', 'b', 'c'];

Lad os gennemløbe elementerne i dette array og skrive dem til en enkelt streng.

En eller anden programmør har allerede løst denne opgave, men har fejlagtigt brugt et for-in loop. Lad os se, hvad der blev opnået:

let res = ''; for (let elem in arr) { res += elem; } console.log(res); // vil udskrive '012'

Så resultatet bliver strengen '012', og ikke 'abc'. Lad os finde ud af, hvorfor det skete.

Hvorfor overhovedet blev arrayet gennemløbet med et for-in loop? Sagtens, fordi et array i JavaScript er et specialtilfælde af et objekt. Så derfor er det faktisk korrekt kode på dette punkt. Men det bør man ikke gøre.

Sagen er, at for-in under visse betingelser kan fange ekstra ting, og ud over arrayets elementer får du måske noget andet parasitisk under gennemløbet. Gennemløb arrays kun med for-of.

Lad os nu finde ud af, hvorfor vi ser et så underligt resultat. Sagtens, for når man gennemløber med for-in vil der faktisk i variablen elem komme nøgler, på trods af den forvirrende navngivning af denne variabel.

Lad os rette den begåede fejl og skrive den korrekte kode:

let arr = ['a', 'b', 'c']; let res = ''; for (let elem of arr) { res += elem; } console.log(res); // vil udskrive 'abc'
Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis