6 of 17 menu

A tömb bejárásának hibája for-in ciklussal JavaScriptben

A tömb bejárásához a for-of ciklust kell használni. Azonban néha a kezdők tévesen a for-in ciklust próbálják alkalmazni. Nézzük meg ennek a hibának a jellemző jeleit.

Tegyük fel, hogy van egy tömbünk:

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

Járjuk be a tömb elemeit és írjuk őket egyetlen sztringbe.

Egy bizonyos programozó már megoldotta ezt a feladatot, de tévesen a for-in ciklust használta. Nézzük meg, mit kapott:

let res = ''; for (let elem in arr) { res += elem; } console.log(res); // kiírja '012'

Tehát az eredmény a '012' sztring, és nem a 'abc'. Derítsük ki, miért történt ez.

Egyáltalán miért is lehet a tömböt for-in ciklussal bejárni? Az az oka, hogy a tömb a JavaScriptben az objektum különleges esete. Ezért valójában ez tekintetben ez helyes kód. De nem szabad így csinálni.

Az a helyzet, hogy a for-in bizonyos feltételek mellett felesleges dolgokat is beérinthet, így a tömb elemei mellett még valami nemkívánatosat is kaphatsz a bejárás során. A tömböket csak for-of ciklussal szabad bejárni.

Most nézzük meg, miért látunk ilyen furcsa eredményt. Az a helyzet, hogy a for-in-nel való bejárás során valójában a elem változóba a kulcsok kerülnek, függetlenül a változó nevének félrevezető voltától.

Most javítsuk ki az elkövetett hibát és írjunk helyes kódot:

let arr = ['a', 'b', 'c']; let res = ''; for (let elem of arr) { res += elem; } console.log(res); // kiírja 'abc'
Magyar
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
A weboldal működéséhez, elemzéshez és személyre szabáshoz sütiket használunk. Az adatfeldolgozás a Adatvédelmi irányelvek szerint történik.
összes elfogadása beállítás elutasítás