⊗jsPmLpDbg 167 of 505 menu

კოდის დებაგინგის რჩევები JavaScript-ში ციკლების მაგალითზე

ახლა მე გასწავლით კოდში შეცდომების მოძიების მეთოდოლოგიას. წარმოიდგინეთ, რომ რაიმე გაუგებრობის გამო არ მიჰყევით წინა გაკვეთილის რჩევებს და მიიღეთ არამოქმედი კოდი. მოდით ნახოთ, როგორ ვიპოვოთ შეცდომები და გავუშვათ იგი.

ბევრი დამწყები იყენებს არასწორ მეთოდოლოგიას ძიებისთვის. ისინი იღებენ და უყურებენ კოდს, იმ იმედით, რომ შეამჩნევენ შეცდომას. და ასე რამდენიმე საათის განმავლობაში. ეს ასე არ მუშაობს.

სწორი მეთოდოლოგია არის ცვლადების კონსოლში გამოტანა და იმის განსაზღვრა, არის თუ არა იქ სწორი მნიშვნელობა, თუ არა. ამ შემთხვევაში უნდა დაიწყოთ სავარაუდო პრობლემის ადგილიდან და ასწროთ კოდის ზემოთ. მოდით ვნახოთ პრაქტიკაში.

მაგალითისთვის, დაე, თქვენს წინაშე დადგეს ამოცანა: გადაიტანოთ მასივი ორნიშნა რიცხვებით და იპოვოთ რიცხვები, რომელთა პირველი ციფრი ერთით მეტია მეორეზე. მოდით, სიმარტივისთვის, მასივში რიცხვები იყოს შენახული სტრიქონების სახით.

დაე, თქვენ ამოხსენით ამოცანა და მიიღეთ შემდეგი კოდი:

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-ს

კოდი, თუმცა, აბრუნებს 0-ს. ამ შემთხვევაში, პირველ რიგში საჭიროა შევამოწმოთ, შედის თუ არა კოდის შესრულება if-ში. გამოვიტანოთ რაიმე კონსოლში:

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('!'); // არაფერს არ აჩვენებს sum += elem; } } console.log(sum);

რადგან კონსოლში არაფერი გამოჩნდა, ეს ნიშნავს, რომ კოდის შესრულება უბრალოდ არ შედის პირობაში. მოდით, თვალით ვნახოთ, რას ვპოულობთ:

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' და '11', '3' და '21' ... if (elem[0] === elem[1] + 1) { sum += elem; } } console.log(sum);

შედეგად, დაუყოვნებლივ ჩანს, რომ მეორე წევრი ორნიშნაა. ადვილია გაგება, რომ ეს იმიტომ ხდება, რომ ერთეული მიემატება როგორც სტრიქონი. მოდით, გამოვასწოროთ პრობლემა:

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); // '021324354'

გამოსწორების შემდეგ ჩვენ უკვე ვხედავთ, რომ ცვლადში sum რაღაც გამოჩნდა, თუმცა არაკორექტული. ჩანს, თუმცა, რომ იქ დევს ის, რაც ჩვენ გვჭირდება, მაგრამ ის დაემატა როგორც სტრიქონი, და არა როგორც რიცხვი. მოდით, გამოვასწოროთ პრობლემა:

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); // ყველაფერი მუშაობს

გამოასწორეთ შეცდომები, რომლებიც დაუშვა შემდეგ კოდში:

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);
ქართული
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
ვებსაიტის მუშაობის, ანალიტიკისა და პერსონალიზაციისთვის ვიყენებთ ქუქი-ფაილებს. მონაცემთა დამუშავება ხდება Კონფიდენციალურობის პოლიტიკის შესაბამისად.
ყველას მიღება პარამეტრები უარყოფა