⊗jsPmLpFl 165 of 505 menu

ფლაგებთან მუშაობა JavaScript-ში

ახლა ჩვენ ვისწავლით ფლაგებთან მუშაობას. ფლაგი არის სპეციალური ცვლადი, რომელსაც შეუძლია მიიღოს მხოლოდ ორი მნიშვნელობა: true და false. ფლაგების საშუალებით შესაძლებელია ამოცანების ამოხსნა, რომლებიც ამოწმებენ რაიმეს არარსებობას: მაგალითად, შეიძლება შევამოწმოთ, რომ მასივში არ არის ელემენტი გარკვეული მნიშვნელობით. მოდით დავიწყოთ.

მოდით ამოვხსნათ შემდეგი ამოცანა: მოცემულია მასივი რიცხვებით, საჭიროა შევამოწმოთ, არის თუ არა მასში ელემენტი 3 მნიშვნელობით თუ არა. თუ არის - გამოვიტანოთ '+++', თუ არა - გამოვიტანოთ '---'.

ჯერ მოდით ვცადოთ '+++'-ის გამოტანა. ამისთვის გადავუყვებით ჩვენი მასივის ყველა ელემენტს და if-ით ვიკითხავთ - უდრის თუ არა მიმდინარე ელემენტი 3 მნიშვნელობას. თუ უდრის - გამოვიტანთ '+++'-ს:

let arr = [1, 2, 3, 4, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); } }

მაგრამ ჩვენი ამოხსნა არც ისე კარგია: ხომ თუ მასივში იქნება არა ერთი 3, არამედ რამდენიმე, მაშინ '+++' გამოიტანება რამდენიმეჯერ. მოდით შევცვალოთ ჩვენი მასივი (გავაკეთოთ ორი ელემენტი 3 მნიშვნელობით) და დავრწმუნდეთ ამაში:

let arr = [1, 2, 3, 4, 3, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); // გამოიტანს რამდენიმეჯერ } }

მოდით გამოვასწოროთ პრობლემა: დავასრულოთ ციკლი break-ის საშუალებით, თუ ელემენტი უკვე მოიძებნა:

let arr = [1, 2, 3, 4, 3, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); break; // დავასრულოთ ციკლი } }

ახლა მოდით ვცადოთ ისე მოვიქცეთ, რომ, თუ მასივში საერთოდ არ არის ელემენტი 3 მნიშვნელობით, გამოიტანოს '---'. გავრცელებული შეცდომა იქნება ჩვენს if-ს else-ის დამატება - ამ შემთხვევაში '---' გამოიტანება ყველა იმ ელემენტზე, რომელიც არ არის 3:

let arr = [1, 2, 3, 4, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); // გამოიტანს ელემენტ 3-ზე } else { console.log('---'); // გამოიტანს ელემენტებზე 1, 2, 4, 5 } }

ასე რომ, else-ის დამატების იდეა - ცუდი იდეაა, არ მუშაობს. მსგავსი ტიპის ამოცანების ამოსახსნელად (ასეთი ამოცანები საკმაოდ ხშირად გვხვდება) გამოიყენება ე.წ. ფლაგები.

როგორც ზემოთ იყო ნახსენები, ფლაგი - ეს არის ისეთი ცვლადი, რომელსაც შეუძლია მიიღოს ორი მნიშვნელობა: true ან false.

მოდით, გავაკეთოთ ცვლადი flag შემდეგი მნიშვნელობით: თუ ის უდრის true-ს, მაშინ მასივში არის ელემენტი 3, ხოლო თუ false, მაშინ ასეთი ელემენტი არ არის.

თავდაპირველად დავსახოთ ცვლადი flag false მნიშვნელობაზე - ანუ ჩავთვალოთ, რომ ელემენტი 3 მასივში არ არის:

let arr = [1, 2, 3, 4, 5]; let flag = false; // ვფიქრობთ, რომ ელემენტი 3 არ არის მასივში

შემდეგ გავუშვათ ციკლი if-ით ისე, როგორც ადრე ვაკეთებდით. თუ ციკლი აღმოაჩენს, რომ მასივში არის ელემენტი 3 - მაშინ დავსახოთ ცვლადი flag true მნიშვნელობაზე და გავცეთ ციკლი break-ის საშუალებით:

let arr = [1, 2, 3, 4, 5]; let flag = false; // ვფიქრობთ, რომ ელემენტი 3 არ არის მასივში for (let elem of arr) { if (elem == 3) { flag = true; // ელემენტი არის - განვაახლოთ ცვლადი flag break; // გავცეთ ციკლს } }

პასუხი კითხვაზე, არის თუ არა მასივში 3, შეგვიძლია მივცეთ მხოლოდ ციკლის შემდეგ. და ეს პასუხი ჩვენ უკვე გვაქვს: ციკლის შემდეგ ცვლადი flag შეიძლება დარჩეს false ან შეიცვალოს მნიშვნელობა true-ზე, თუ ციკლმა აღმოაჩინა მასივში 3:

let arr = [1, 2, 3, 4, 5]; let flag = false; for (let elem of arr) { if (elem == 3) { flag = true; break; } } // აქ ცვლადი flag უდრის ან true-ს, ან false-ს

ახლა ციკლის შემდეგ შეგვიძლია გავაკეთოთ if, რომელიც შეხედავს ცვლადს flag და გამოიტანს ეკრანზე '+++'-ს ან '---'-ს:

let arr = [1, 2, 3, 4, 5]; let flag = false; for (let elem of arr) { if (elem == 3) { flag = true; break; } } if (flag === true) { console.log('+++'); } else { console.log('---'); }

მოცემულია მასივი:

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

შეამოწმეთ, არის თუ არა ამ მასივში ელემენტი 'c'. თუ არის - გამოიტანეთ '+++', ხოლო თუ არა - გამოიტანეთ '---'.

დაწერეთ კოდი, რომელიც შეამოწმებს რიცხვს იმაზე, მარტივია ის თუ არა. მარტივი რიცხვი იყოფა მხოლოდ ერთზე და საკუთარ თავზე, და არ იყოფა სხვა რიცხვებზე.

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