⊗jsPmLpDbg 167 of 505 menu

Sfaturi pentru depanarea codului folosind exemple cu bucle în JavaScript

Acum vă voi învăța o metodă de a găsi erori în cod. Să presupunem că, din cine știe ce motiv, nu ați urmat sfaturile din lecția anterioară și ați obținut un cod care nu funcționează. Să vedem cum să găsiți erorile și să-l faceți să funcționeze.

Mulți începători folosesc o metodă incorectă de căutare. Ei iau și se uită la cod, în speranța că vor observa eroarea. Și așa câteva ore. Așa nu funcționează.

Metoda corectă este afișarea variabilelor în consolă și verificarea dacă conțin ce trebuie sau nu. În acest caz, trebuie să începeți de la locul presupus al problemei și să vă deplasați în sus în cod. Să vedem în practică.

Să presupunem, de exemplu, că aveați sarcina de a parcurge un array cu numere din două cifre și de a găsi numerele la care prima cifră este cu unu mai mare decât a doua. Să presupunem, pentru simplitate, că în array sunt stocate numere sub formă de șiruri de caractere.

Să presupunem că ați rezolvat problema și ați obținut următorul cod:

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); // afișează 0

Codul, totuși, afișează 0. În acest caz, primul lucru de făcut este să verificați dacă execuția codului intră în if. Să afișăm ceva în consolă acolo:

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('!'); // nu afișează nimic sum += elem; } } console.log(sum);

Deoarece în consolă nu apare nimic, asta înseamnă că execuția codului pur și simplu nu intră în condiție. Să vedem cu proprii noștri ochi, ce anume comparăm:

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

În rezultat, devine imediat vizibil că al doilea termen are două cifre. Este ușor de înțeles că asta se întâmplă pentru că unitatea se adună ca șir de caractere. Să corectăm problema:

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

După corectare, vedem deja că în variabila sum a apărut ceva, deși incorect. Se vede, totuși, că acolo se află ceea ce ne trebuie, dar s-a adunat sub formă de șiruri, nu de numere. Să corectăm problema:

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; // corectăm } } console.log(sum); // totul funcționează

Corectați erorile făcute în următorul cod:

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);
Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge