⊗jsPmLpFl 165 of 505 menu

Flagstrādāšana JavaScript

Tagad mēs iemācīsimies strādāt ar flagiem. Flags ir īpašs mainīgais, kas var iegūt tikai divas vērtības: true un false. Ar flagu palīdzību var atrisināt uzdevumus, kas pārbauda kaut kā neesamību: piemēram, var pārbaudīt, vai masīvā nav elementa ar noteiktu vērtību. Sāksim.

Atrisināsim šādu uzdevumu: dots masīvs ar skaitļiem, jāpārbauda, vai tajā atrodas elements ar vērtību 3 vai nē. Ja atrodas - izvadīsim '+++', ja nē - izvadīsim '---'.

Vispirms mēģināsim izvadīt '+++'. Lai to izdarītu, iziesim cauri visiem masīva elementiem un ar if noskaidrosim - vai pašreizējais elements ir vienāds ar vērtību 3. Ja ir vienāds - izvadīsim '+++':

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

Bet mūsu risinājums nav īsti labs: jo, ja masīvā būs nevis viena vērtība 3, bet vairākas, tad '+++' tiks izvadīts vairākas reizes. Labosim mūsu masīvu (izveidosim divi elementus ar vērtību 3) un par to pārliecināsimies:

let arr = [1, 2, 3, 4, 3, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); // izvadīs vairākas reizes } }

Izlabosim problēmu: pārtrauksim ciklu ar break, ja elements jau ir atrasts:

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

Tagad mēģināsim panākt, lai, ja masīvā vispār nav elementu ar vērtību 3, tiktu izvadīts '---'. Izplatīts pārpratums būtu pievienot else mūsu if - šajā gadījumā '---' tiks izvadīts visos elementos, kas nav 3:

let arr = [1, 2, 3, 4, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); // izvadīs uz elementa 3 } else { console.log('---'); // izvadīs uz elementiem 1, 2, 4, 5 } }

Tātad, ideja pievienot else - slikta ideja, nedarbīga. Lai atrisinātu šāda veida uzdevumus (šādi uzdevumi sastopami pietiekami bieži) izmanto tā sauktos flagus.

Kā jau minēts iepriekš, flags ir tāds mainīgais, kas var iegūt divas vērtības: true vai false.

Tātad, izveidosim mainīgo flag ar šādu nozīmi: ja tas ir vienāds ar true, tad masīvā ir elements 3, bet ja false, tad šāda elementa nav.

Sākotnēji iestatīsim mainīgo flag uz vērtību false - tas ir, pieņemsim, ka elementa 3 masīvā nav:

let arr = [1, 2, 3, 4, 5]; let flag = false; // pieņemam, ka elementa 3 nav masīvā

Pēc tam palaidīsim ciklu ar if tā, kā mēs to darījām agrāk. Ja cikls atklās, ka masīvā ir elements 3 - tad iestatīsim mainīgo flag uz vērtību true un iziesim no cikla ar break:

let arr = [1, 2, 3, 4, 5]; let flag = false; // pieņemam, ka elementa 3 nav masīvā for (let elem of arr) { if (elem == 3) { flag = true; // elements ir - pārdefinēsim mainīgo flag break; // iziesim no cikla } }

Atbildi uz jautājumu, vai masīvā ir 3 vai nē, mēs varam dot tikai pēc cikla. Un šī atbilde mums jau ir: pēc cikla mainīgais flag varēja palikt false vai varēja mainīt savu vērtību uz true, ja cikls atklāja masīvā 3:

let arr = [1, 2, 3, 4, 5]; let flag = false; for (let elem of arr) { if (elem == 3) { flag = true; break; } } // šeit mainīgais flag ir vai nu true, vai false

Tagad pēc cikla mēs varam izveidot if, kurš apskatīsies uz mainīgo flag un izvadīs ekrānā '+++' vai '---':

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('---'); }

Dots masīvs:

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

Pārbaudiet, vai šajā masīvā ir elements 'c'. Ja ir - izvadiet '+++', bet ja nav - izvadiet '---'.

Uzrakstiet kodu, kas pārbaudīs skaitli, vai tas ir pirmskaitlis vai nē. Pirmskaitlis dalās tikai ar vieninieku un pašu sevi, un nedalās ar citiem skaitļiem.

Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt