6 of 17 menu

JavaScript-те for-in цикымен массивті ілгерілету қатесі

Массивті ілгерілету үшін for-of цикін пайдалану керек. Алайда, кейде бастаушылар қателікпен for-in цикін қолдануға тырысады. Осы қатенің тән белгілерін қарастырайық.

Бізде мынадай массив болсын:

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

Осы массив элементтерін ілгерілейік және оларды бір жолға жазайық.

Бір программашы бұл мәселені шешкен бірақ қателікпен for-in цикін пайдаланған. Оның нені алғанын қарайық:

let res = ''; for (let elem in arr) { res += elem; } console.log(res); // шығарады '012'

Сонымен, нәтижеде 'abc' емес, '012' жолы шығады. Неліктен бұлай болғанын түсінейік.

Неге жалпы массив 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ščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Біз сайттың жұмысы, аналитика және персонализация үшін cookie файлдарын қолданамыз. Деректерді өңдеу Құпиялылық саясаты бойынша жүреді.
барлығын қабылдау баптау қабылдамау