⊗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
Биз сайттин иштөөсү, аналитика жана персонализация үчүн cookie файлдарын колдонобуз. Маалыматтарды иштетүү Маалыматты коргоо саясаты боюнча жүргүзүлөт.
баарын кабыл алуу ыңгайлаштыруу четке кагуу