menu

Att arbeta med flaggor i JavaScript

Nu ska vi lära oss att arbeta med flaggor. En flagga är en speciell variabel som bara kan anta två värden: true och false. Med hjälp av flaggor kan man lösa uppgifter som kontrollerar frånvaron av något: till exempel kan man kontrollera att det i en array finns inget element med ett visst värde. Låt oss komma igång.

Låt oss lösa följande uppgift: given en array med siffror, kontrollera om den innehåller ett element med värdet 3 eller inte. Om det finns - skriv ut '+++', om det inte finns - skriv ut '---'.

Låt oss först försöka skriva ut '+++'. För att göra detta, låt oss gå igenom alla element i vår array och med en if-sats fråga - är det aktuella elementet lika med värdet 3. Om det är lika - skriv ut '+++':

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

Men vår lösning är inte särskilt bra: för om det i arrayen inte finns ett värde 3, utan flera, så kommer '+++' att skrivas ut flera gånger. Låt oss ändra vår array (vi skapar två element med värdet 3) och se till om detta:

let arr = [1, 2, 3, 4, 3, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); // kommer att skrivas ut flera gånger } }

Låt oss åtgärda problemet: avsluta loopen med hjälp av break, om elementet redan har hittats:

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

Låt oss nu försöka göra så att, om det i arrayen inte finns några element med värdet 3 alls, så skrivs '---' ut. Ett vanligt misstag är att lägga till else till vår if-sats - i så fall kommer '---' att skrivas ut för alla element som inte är 3:

let arr = [1, 2, 3, 4, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); // kommer att skrivas ut för elementet 3 } else { console.log('---'); // kommer att skrivas ut för elementen 1, 2, 4, 5 } }

Så, idén att lägga till else - är en dålig idé, det fungerar inte. För att lösa uppgifter av denna typ (sådana uppgifter förekommer ganska ofta) använder man sig av så kallade flaggor.

Som nämnts ovan är en flagga en sådan variabel som bara kan anta två värden: true eller false.

Så, låt oss skapa en variabel flag med detta värde: om den är lika med true, så finns elementet 3 i arrayen, och om den är false, så finns inget sådant element.

Inledningsvis sätter vi variabeln flag till värdet false - det vill säga vi antar att elementet 3 inte finns i arrayen:

let arr = [1, 2, 3, 4, 5]; let flag = false; // antar att elementet 3 inte finns i arrayen

Sedan startar vi en loop med en if-sats som vi gjorde det tidigare. Om loopen upptäcker att det i arrayen finns ett element med värdet 3 - så sätter vi variabeln flag till värdet true och avslutar loopen med hjälp av break:

let arr = [1, 2, 3, 4, 5]; let flag = false; // antar att elementet 3 inte finns i arrayen for (let elem of arr) { if (elem == 3) { flag = true; // elementet finns - omdefinierar variabeln flag break; // avslutar loopen } }

Svaret på frågan, om det i arrayen finns 3 eller inte, kan vi bara ge efter loopen. Och det svaret har vi redan: efter loopen kan variabeln flag ha förblivit false eller ha ändrat sitt värde till true, om loopen upptäckte 3 i arrayen:

let arr = [1, 2, 3, 4, 5]; let flag = false; for (let elem of arr) { if (elem == 3) { flag = true; break; } } // här är variabeln flag antingen true eller false

Nu kan vi efter loopen göra en if-sats, som tittar på variabeln flag och skriver ut '+++' eller '---' på skärmen:

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

Given en array:

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

Kontrollera att det i denna array finns ett element 'c'. Om det finns - skriv ut '+++', och om det inte finns - skriv ut '---'.

Skriv kod som kommer att kontrollera om ett tal är primtal eller inte. Ett primtal är bara delbart med ett och med sig självt, och är inte delbart med andra tal.

Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa