⊗jsPmLpDbg 167 of 505 menu

JavaScript da Tsikllarni Misol Qilib Kodni Debug Qilish Bo‘yicha Maslahatlar

Hozir sizga kodda xatolarni qidirish metodikasini o‘rgataman. Tasavvur qiling, siz qandaydir tushunmovchilik tufayli oldingi darsdagi maslahatlarga amal qilmadingiz va ishlamaydigan kod oldingiz. Keling, xatolarni qanday topish va uni ishlashiga qanday yo‘l qo‘yishni ko‘rib chiqaylik.

Ko‘plab yangi boshlanuvchilar noto‘g‘ri qidiruv usulidan foydalanadilar. Ular kodni o‘rganadilar, xato ko‘rishga umid qilgan holda. Va bir-ikki soat shunday. Bu ishlamaydi.

To‘g‘ri metodika - bu o‘zgaruvchilarni konsolga chiqarish va kerakli narsa u yerda bor-yo‘qligini aniqlash. Bunda muammoning taxmin qilingan joyidan boshlanib, kod bo‘yicha yuqoriga harakat qilish kerak. Keling, amalda ko‘ramiz.

Misol uchun, sizning oldingizda ikki xonali sonlar massivini ko‘rib chiqish va birinchi raqami ikkinchisidan birga katta bo‘lgan sonlarni topish vazifasi turgan bo‘lsin. Soddalik uchun massivda raqamlar satr shaklida saqlansin.

Siz masalani yechdingiz va quyidagi kodni oldingiz deb faraz qilaylik:

let arr = ['21', '32', '34', '43', '45', '54', '55']; let sum = 0; for (let elem of arr) { if (elem[0] === elem[1] + 1) { sum += elem; } } console.log(sum); // 0 ni beradi

Biroq, kod 0 ni beradi. Bu holatda birinchi navbatda tekshirish kerak, kod if ga kirish bormi yo‘qmi. Uning ichida konsolga nimanidir chiqaramiz:

let arr = ['21', '32', '34', '43', '45', '54', '55']; let sum = 0; for (let elem of arr) { if (elem[0] === elem[1] + 1) { console.log('!'); // hech narsa chiqarmaydi sum += elem; } } console.log(sum);

Konsolda hech narsa paydo bo‘lmagani uchun, bu shuni anglatadiki, kod shartga umuman bormayapti. Keling, ko‘z bilan ko‘rib, nimani solishtiryapmiz:

let arr = ['21', '32', '34', '43', '45', '54', '55']; let sum = 0; for (let elem of arr) { console.log(elem[0], elem[1] + 1); // '2' va '11', '3' va '21' ... if (elem[0] === elem[1] + 1) { sum += elem; } } console.log(sum);

Natijada darhol ko‘rinib turibdiki, ikkinchi qo‘shiluvchi ikki xonali. Buning sababi, bitta satr sifatida qo‘shilayotganligi easy tushuniladi. Muammoni tuzatamiz:

let arr = ['21', '32', '34', '43', '45', '54', '55']; let sum = 0; for (let elem of arr) { if (+elem[0] === +elem[1] + 1) { // tuzatamiz sum += elem; } } console.log(sum); // '021324354'

Tuzatishdan so‘ng biz allaqachon ko‘ramizki, sum o‘zgaruvchisida nima bo‘lsa paydo bo‘ldi, garchi noto‘g‘ri bo‘lsa ham. Biroq, ko‘rinib turibdiki, kerakli narsa u yerda, lekin u raqamlar shaklida emas, balki satrlar shaklida qo‘shilgan. Muammoni tuzatamiz:

let arr = ['21', '32', '34', '43', '45', '54', '55']; let sum = 0; for (let elem of arr) { if (+elem[0] === +elem[1] + 1) { sum += +elem; // tuzatamiz } } console.log(sum); // hammasi ishlaydi

Quyidagi kodda qilingan xatolarni tuzating:

let obj = {a: 10, b: 20, c: 30, d: 40, e: 50}; let sum = 0; for (let elem in obj) { if (elem[0] === '1' && elem[0] === '2') { sum += +elem; } } console.log(sum);
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