⊗jsPmLpFl 165 of 505 menu

Arbejde med flag i JavaScript

Nu skal vi lære at arbejde med flag. Et flag er en speciel variabel, som kun kan antage to værdier: true og false. Med flag kan man løse opgaver, der kontrollerer fraværet af noget: for eksempel kan man kontrollere, at der i et array ikke er noget element med en bestemt værdi. Lad os komme i gang.

Lad os løse følgende opgave: givet et array med tal, skal du kontrollere, om det indeholder et element med værdien 3 eller ej. Hvis det gør - udskriv '+++', hvis ikke - udskriv '---'.

Lad os først prøve at udskrive '+++'. For at gøre dette gennemgår vi alle elementer i vores array og med en if vil vi spørge - er det aktuelle element lig med værdien 3. Hvis det er lig - udskriver vi '+++':

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

Men vores løsning er ikke særlig god: for hvis der i arrayet ikke er én værdi 3, men flere, så vil '+++' blive udskrevet flere gange. Lad os rette vores array (lad os lave to elementer med værdien 3) og overbevise os selv om dette:

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

Lad os rette problemet: afslut løkken med break, hvis elementet allerede er fundet:

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

Lad os nu prøve at gøre det sådan, at hvis der slet ikke er nogen elementer med værdien 3 i arrayet, udskrives '---'. En udbredt misforståelse vil være at tilføje else til vores if - i dette tilfælde vil '---' blive udskrevet for alle elementer, der ikke er 3:

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

Så ideen om at tilføje else - er en dårlig ide, den virker ikke. For at løse opgaver af denne type (sådanne opgaver forekommer ret hyppigt) bruger man såkaldte flag.

Som allerede nævnt ovenfor, er et flag en variabel, der kun kan antage to værdier: true eller false.

Så, lad os lave en variabel flag med denne betydning: hvis den er lig true, er der et element 3 i arrayet, og hvis false, er der ikke sådant et element.

Indledningsvis sætter vi variablen flag til værdien false - det vil sige, vi antager, at der ikke er noget element 3 i arrayet:

let arr = [1, 2, 3, 4, 5]; let flag = false; // antager at element 3 ikke er i arrayet

Derefter starter vi en løkke med en if, som vi gjorde det før. Hvis løkken opdager, at der i arrayet er et element 3 - så sætter vi variablen flag til værdien true og forlader løkken med break:

let arr = [1, 2, 3, 4, 5]; let flag = false; // antager at element 3 ikke er i arrayet for (let elem of arr) { if (elem == 3) { flag = true; // elementet findes - omdefinerer variablen flag break; // forlader løkken } }

Svaret på spørgsmålet, om der er 3 i arrayet eller ej, kan vi først give efter løkken. Og dette svar har vi allerede: efter løkken kunne variablen flag være forblevet false eller kunne have skiftet sin værdi til true, hvis løkken opdagede 3 i arrayet:

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

Nu kan vi efter løkken lave en if, som ser på variablen flag og udskriver på skærmen '+++' 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('---'); }

Givet et array:

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

Kontroller, om der i dette array er et element 'c'. Hvis der er - udskriv '+++', og hvis ikke - udskriv '---'.

Skriv kode, der vil kontrollere om et tal er primtal eller ej. Et primtal er kun deleligt med en og med sig selv, og er ikke deleligt med andre tal.

Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικά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
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis