Нужна помощь донатом
для написания учебников Kotlin, Java, C++, C#, Go, Rust, Dart
подробности по ссылке
⊗jsPmLpFl 165 of 505 menu
◀ ▶

Arbeid med flagg i JavaScript

Nå skal vi lære å arbeide med flagg. Et flagg er en spesiell variabel som bare kan ha to verdier: true og false. Med flagg kan man løse oppgaver som kontrollerer fraværet av noe: for eksempel kan man sjekke at det i en array ikke er noe element med en bestemt verdi. La oss komme i gang.

La oss løse følgende oppgave: gitt en array med tall, sjekk om den inneholder et element med verdien 3 eller ikke. Hvis den gjør det - skriv ut '+++', hvis ikke - skriv ut '---'.

La oss først prøve å skrive ut '+++'. For å gjøre dette, la oss gå gjennom alle elementene i arrayen vår og med en if spørre - er det nåværende elementet lik verdien 3. Hvis det er likt - skriv ut '+++':

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

Men løsningen vår er ikke veldig bra: for hvis det i arrayen ikke er én verdi 3, men flere, så vil '+++' skrives ut flere ganger. La oss endre arrayen vår (la oss lage to elementer med verdien 3) og overbevise oss om dette:

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

La oss rette opp problemet: avslutt løkken med break hvis elementet allerede er funnet:

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

La oss nå prøve å gjøre det slik at, hvis det i arrayen overhodet ikke er noen elementer med verdien 3, skal det skrives ut '---'. En vanlig misforståelse er å legge til else til vår if - i så fall vil '---' skrives ut for alle elementer som ikke er 3:

let arr = [1, 2, 3, 4, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); // vil skrive ut på element 3 } else { console.log('---'); // vil skrive ut på elementene 1, 2, 4, 5 } }

Så, ideen om å legge til else er en dårlig ide, den fungerer ikke. For å løse oppgaver av denne typen (slike oppgaver forekommer ganske ofte) bruker man såkalte flagg.

Som nevnt ovenfor, er et flagg en slik variabel som kan ha to verdier: true eller false.

Så, la oss lage en variabel flag med denne betydningen: hvis den er lik true, da er det et element 3 i arrayen, og hvis false, da er det ikke et slikt element.

Innledningsvis setter vi variabelen flag til verdien false - det vil si at vi antar at elementet 3 ikke er i arrayen:

let arr = [1, 2, 3, 4, 5]; let flag = false; // antar at elementet 3 ikke er i arrayen

Deretter starter vi en løkke med en if slik som vi gjorde det tidligere. Hvis løkken oppdager at det i arrayen er et element 3 - så setter vi variabelen flag til verdien true og avslutter løkken med break:

let arr = [1, 2, 3, 4, 5]; let flag = false; // antar at elementet 3 ikke er i arrayen for (let elem of arr) { if (elem == 3) { flag = true; // elementet finnes - omdefinerer variabelen flag break; // avslutter løkken } }

Svaret på spørsmålet, om det i arrayen er 3 eller ikke, kan vi bare gi etter løkken. Og dette svaret har vi allerede: etter løkken kunne variabelen flag forbli false eller kunne endre sin verdi til true, hvis løkken oppdaget 3 i arrayen:

let arr = [1, 2, 3, 4, 5]; let flag = false; for (let elem of arr) { if (elem == 3) { flag = true; break; } } // her er variabelen flag lik enten true eller false

Nå kan vi etter løkken lage en if, som ser på variabelen flag og skriver ut på skjermen '+++' eller '---':

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

Gitt en array:

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

Sjekk om det i denne arrayen er et element 'c'. Hvis det er det - skriv ut '+++', og hvis ikke - skriv ut '---'.

Skriv kode som skal sjekke om et tall er primtall eller ikke. Et primtall er bare delbart på en og på seg selv, og er ikke delelig på andre tall.

← →
↑
Norsk▼
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruker informasjonskapsler for nettstedets funksjonalitet, analyse og personalisering. Behandling av data foregår i henhold til Personvernerklæringen.
godta alle tilpass avvis