⊗jsPmLpFl 165 of 505 menu

Arbeiten mit Flags in JavaScript

Jetzt lernen wir, mit Flags zu arbeiten. Ein Flag ist eine spezielle Variable, die nur zwei Werte annehmen kann: true und false. Mit Flags kann man Aufgaben lösen, die die Abwesenheit von etwas prüfen: man kann zum Beispiel prüfen, ob in einem Array kein Element mit einem bestimmten Wert existiert. Lasst uns beginnen.

Lasst uns die folgende Aufgabe lösen: gegeben ist ein Array mit Zahlen, es soll geprüft werden, ob darin ein Element mit dem Wert 3 vorhanden ist oder nicht. Wenn ja, geben wir '+++' aus, wenn nein - geben wir '---' aus.

Lasst uns zunächst versuchen, '+++' auszugeben. Dazu durchlaufen wir alle Elemente unseres Arrays und fragen mit einer if-Bedingung ab - ist das aktuelle Element gleich dem Wert 3. Wenn ja, geben wir '+++' aus:

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

Aber unsere Lösung ist nicht sehr gut: denn wenn im Array nicht nur ein Wert 3 vorkommt, sondern mehrere, dann wird '+++' mehrmals ausgegeben. Lasst uns unser Array ändern (wir machen zwei Elemente mit dem Wert 3) und uns davon überzeugen:

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

Korrigieren wir das Problem: beenden wir die Schleife mit break, wenn das Element bereits gefunden wurde:

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

Lasst uns nun versuchen, es so zu machen, dass, wenn im Array überhaupt keine Elemente mit dem Wert 3 vorhanden sind, '---' ausgegeben wird. Ein verbreiteter Irrglaube wäre, else zu unserer if-Bedingung hinzuzufügen - in diesem Fall würde '---' für alle Elemente ausgegeben werden, die nicht 3 sind:

let arr = [1, 2, 3, 4, 5]; for (let elem of arr) { if (elem == 3) { console.log('+++'); // gibt beim Element 3 aus } else { console.log('---'); // gibt bei den Elementen 1, 2, 4, 5 aus } }

Also, die Idee, else hinzuzufügen - ist eine schlechte Idee, sie funktioniert nicht. Um Aufgaben dieses Typs zu lösen (solche Aufgaben kommen häufig vor) verwendet man sogenannte Flags.

Wie bereits oben erwähnt, ist ein Flag eine Variable, die zwei Werte annehmen kann: true oder false.

Also, lasst uns eine Variable flag erstellen mit folgender Bedeutung: wenn sie true entspricht, dann gibt es im Array ein Element 3, und wenn false, dann gibt es ein solches Element nicht.

Anfangs setzen wir die Variable flag auf den Wert false - das heißt, wir gehen davon aus, dass das Element 3 im Array nicht vorhanden ist:

let arr = [1, 2, 3, 4, 5]; let flag = false; // wir gehen davon aus, dass das Element 3 nicht im Array ist

Dann starten wir eine Schleife mit einer if-Bedingung, so wie wir das schon früher gemacht haben. Wenn die Schleife feststellt, dass im Array ein Element 3 vorhanden ist - dann setzen wir die Variable flag auf den Wert true und verlassen die Schleife mit break:

let arr = [1, 2, 3, 4, 5]; let flag = false; // wir gehen davon aus, dass das Element 3 nicht im Array ist for (let elem of arr) { if (elem == 3) { flag = true; // Element ist vorhanden - wir setzen die Variable flag neu break; // wir verlassen die Schleife } }

Die Antwort auf die Frage, ob im Array 3 enthalten ist oder nicht, können wir erst nach der Schleife geben. Und diese Antwort haben wir bereits: nach der Schleife konnte die Variable flag false geblieben sein oder sie konnte ihren Wert auf true geändert haben, falls die Schleife im Array 3 entdeckt hat:

let arr = [1, 2, 3, 4, 5]; let flag = false; for (let elem of arr) { if (elem == 3) { flag = true; break; } } // hier ist die Variable flag gleich true oder false

Jetzt können wir nach der Schleife eine if-Bedingung machen, die sich die Variable flag ansieht und '+++' oder '---' auf dem Bildschirm ausgibt:

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

Gegeben ist ein Array:

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

Prüfen Sie, ob in diesem Array das Element 'c' vorhanden ist. Wenn ja - geben Sie '+++' aus, und wenn nein - geben Sie '---' aus.

Schreiben Sie Code, der prüft, ob eine Zahl eine Primzahl ist oder nicht. Eine Primzahl ist nur durch eins und durch sich selbst teilbar, und nicht durch andere Zahlen.

Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικά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
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen