6 of 17 menu

JavaScript-da for-in siklida massivni aylantirishda xatolik

Massivni aylantirish uchun for-of siklidan foydalanish kerak. Biroq, ba'zida yangi boshlanuvchilar for-in siklini qo'llashga urinishadi. Keling, ushbu xatoning xarakterli belgilarini ko'rib chiqaylik.

Bizda quyidagi massiv bor:

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

Keling, ushbu massiv elementlarini aylantirib, ularni bitta satrga yozamiz.

Ma'lum bir dasturchi bu vazifani hal qilgan, lekin xatolik bilan for-in siklidan foydalangan. Keling, uning natijasini ko'rib chiqaylik:

let res = ''; for (let elem in arr) { res += elem; } console.log(res); // '012' ni chiqaradi

Shunday qilib, natijada 'abc' emas, balki '012' satri hosil bo'ladi. Keling, nima uchun shunday bo'lganini tushunishga harakat qilaylik.

Nima uchun massiv umuman for-in siklida aylanadi? Gap shundaki, JavaScript-da massiv obyektning alohida holatidir. Shuning uchun aslida bu nuqtai nazardan bu to'g'ri kod. Ammo buni qilish kerak emas.

Gap shundaki, for-in ba'zi sharoitlarda ortiqcha narsalarni qo'shib yuborishi mumkin, va siz massiv elementlaridan tashqari aylantirish paytida boshqa parazit narsalarni olishingiz mumkin. Massivlarni faqat for-of orqali aylantiring.

Keling, endi nima uchun biz shunday g'alati natijani ko'rayotganimizni tushunamiz. Gap shundaki, for-in orqali aylantirishda elem o'zgaruvchisiga aslida kalitlar tushadi, bu o'zgaruvchining nomi chalg'itadigan bo'lsa ham.

Keling, qilingan xatoni tuzatamiz va to'g'ri kodni yozamiz:

let arr = ['a', 'b', 'c']; let res = ''; for (let elem of arr) { res += elem; } console.log(res); // 'abc' ni chiqaradi
Oʻzbek
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекTiếng Việt
Biz sayt ishlashi, tahlil qilish va shaxsiylashtirish uchun cookie-fayllardan foydalanamiz. Ma'lumotlarni qayta ishlash Maxfiylik siyosatiga muvofiq amalga oshiriladi.
hammasini qabul qilish sozlash rad etish