6 of 17 menu

Грешка приликом преласка низа петљом for-in у JavaScript-у

За прелазак низа треба користити петљу for-of. Понекад, међутим, почетници погрешно покушају да примене петљу for-in. Хајде да погледамо карактеристичне знакове ове грешке.

Рецимо да имамо низ:

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

Хајде да прођемо кроз елементе овог низа и запишемо их у један ред.

Неки програмер је већ решио овај задатак, али је погрешно употребио петљу for-in. Хајде да погледамо шта је добио:

let res = ''; for (let elem in arr) { res += elem; } console.log(res); // исписаће '012'

Дакле, као резултат добијамо ред '012', а не 'abc'. Хајде да схватимо зашто се то десило.

Зашто се уопште низ прелазио петљом for-in? Ствар је у томе што је низ у JavaScript-у специјални случај објекта. Зато је заправо у том смислу ово исправан код. Али то не треба радити.

Ствар је у томе што for-in под одређеним условима може да "ухвати" вишак, и ви ћете поред елемената низа добити приликом преласка још нешто паразитско. Прелазите низове само са for-of.

Хајде сада да схватимо зашто видимо такав чудан резултат. Ствар је у томе, што ће приликом преласка са for-in у променљиву elem заправо упадати кључеви, упркос збуњујућем имену те променљиве.

Хајде да исправимо допуштену грешку и напишемо исправан код:

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