6 of 17 menu

Napaka pri iteraciji skozi array z zanko for-in v JavaScript

Za iteracijo skozi array je treba uporabiti zanko for-of. Včasih pa začetniki pomotoma poskušajo uporabiti zanko for-in. Poglejmo si značilne znake te napake.

Recimo, da imamo array:

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

Iterirajmo skozi elemente tega arrayja in jih zapišimo v eno vrstico.

Nek programer je to nalogo že rešil, vendar je pomotoma uporabil zanko for-in. Poglejmo, kaj je dobil:

let res = ''; for (let elem in arr) { res += elem; } console.log(res); // izpiše '012'

Torej, rezultat je niz '012', in ne 'abc'. Poglejmo, zakaj se je to zgodilo.

Zakaj se je array sploh dal iterirati skozi zanko for-in? Bistvo je v tem, da je array v JavaScriptu poseben primer objekta. Zato je to pravzaprav v tem smislu korektna koda. Toda tega ne bi smeli delati.

Bistvo je v tem, da for-in lahko pod določenimi pogoji zajame odvečne stvari, in boste poleg elementov arrayja pri iteraciji dobili še kaj parazitskega. Skozi arrayje iterirajte samo z for-of.

Zdaj pa poglejmo, zakaj vidimo takšen čuden rezultat. Bistvo je v tem, da pri iteraciji z for-in v spremenljivko elem pravzaprav prihajajo ključi, ne glede na zavajajoče ime te spremenljivke.

Popravimo storjeno napako in napišimo korektno kodo:

let arr = ['a', 'b', 'c']; let res = ''; for (let elem of arr) { res += elem; } console.log(res); // izpiše 'abc'
Slovenščina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni