6 of 17 menu

Greška u iteraciji niza pomoću for-in petlje u JavaScript-u

Za iteraciju kroz niz treba koristiti petlju for-of. Međutim, početnici ponekad greškom pokušavaju da upotrebe petlju for-in. Pogledajmo karakteristične znake ove greške.

Neka imamo niz:

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

Hajde da prođemo kroz elemente ovog niza i upišemo ih u jedan string.

Izvesni programer je već rešio ovaj zadatak, ali je greškom upotrebio petlju for-in. Da vidimo šta je dobio:

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

Dakle, kao rezultat dobija se string '012', a ne 'abc'. Hajde da shvatimo zašto se to dogodilo.

Zašto se uopšte niz iterirao kroz petlju for-in? Stvar je u tome što je niz u JavaScript-u specijalni slučaj objekta. Zbog toga je zapravo u tom smislu ovo ispravan kod. Ali tako ne treba raditi.

Stvar je u tome što for-in pod određenim uslovima može zahvatiti višak, i pored elemenata niza dobićete pri iteraciji još nešto parazitsko. Iterirajte nizove samo pomoću for-of.

Hajde sada da shvatimo zašto vidimo tako čudan rezultat. Stvar je u tome, da će pri iteraciji pomoću for-in u promenljivu elem zapravo upadati ključevi, uprkos nazivu ove promenljive koji zbunjuje.

Hajde da ispravimo napravljenu grešku i napišemo ispravan kod:

let arr = ['a', 'b', 'c']; let res = ''; for (let elem of arr) { res += elem; } console.log(res); // ispisaće 'abc'
Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij