6 of 17 menu

Feil ved gjennomgang av array med for-in løkke i JavaScript

For å gå gjennom et array bør du bruke for-of løkken. Noen ganger prøver imidlertid nybegynnere feilaktig å bruke for-in løkken. La oss se på de karakteristiske tegnene på denne feilen.

La oss si at vi har et array:

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

La oss gå gjennom elementene i dette arrayet og skrive dem til en enkelt streng.

En programmerer har allerede løst dette problemet, men brukte feilaktig for-in løkken. La oss se på hva han fikk:

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

Så, resultatet blir strengen '012', og ikke 'abc'. La oss finne ut hvorfor dette skjedde.

Hvorfor ble arrayet i det hele tatt gått gjennom med for-in løkken? Saken er at et array i JavaScript er et spesialtilfelle av et objekt. Derfor er dette faktisk korrekt kode på dette punktet. Men det bør ikke gjøres.

Grunnen er at for-in under visse forhold kan fange opp ekstra ting, og du kan i tillegg til array-elementene få noe ekstra uønsket under gjennomgangen. Gå gjennom arrays kun med for-of.

La oss nå finne ut hvorfor vi ser et så merkelig resultat. Saken er at under gjennomgang med for-in vil variabelen elem faktisk inneholde nøklene, til tross for det forvirrende navnet på denne variabelen.

La oss rette feilen som er begått og skrive korrekt kode:

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