Heute mal nur einen ganz kurzen Beitrag. Es gibt sicherlich viele Wege 0 und 1 in Javascript nach true und false umzuwandeln.
Folgender Weg, den ich heute gesehen hab, dürfte aber wohl der kürzeste und auch eleganteste sein. Zudem klappt er nicht nur für Integer-Werte, sondern auch für die String-Repräsentationen von 0 und 1.
Sowas verbuche ich hier immer unter “Programmierperlen”…
0 und 1 nach true und false
Um die Integer 0 und 1 nach Boolean zu konvertieren, genügt es den Not-Operator doppelt einzusetzen.
var thisIsFalse = !!0; //false var thisIsTrue = !!1; //true
Warum das funktioniert? Nehmen wir folgendes Beispiel. 1 ist ein valider Wert und somit true. Wenn wir nun !1 schreiben, dann negieren wir das true und erhalten false. Mit einem zweiten ! also !!1 negieren wir das erhaltene false und bekommen somit true für 1. Für die 0 sieht es genau andersrum aus. So entspricht 0 einem false. Dementsprechen !0 einem true und !!0 einem false.
“0”- und “1”-Strings nach true und false
Und was, wenn 0 und 1 als Strings vorliegen, weil Sie zum Beispiel einem schlecht umgesetztem JSON-String entspringen? Nichts einfacher als das. Mittels des + Operators lassen sich Strings zu int casten. Dies Lösung für einen String sieht also wie folgt aus:
</span> var thisIsFalse = !!+"0"; //false var thisIsTrue = !!+"1"; //true
Drei Zeichen, um aus einem String (mit dem Wert “0” oder “1”) einen Boolean zu machen. Ich denke viel eleganter geht es nicht mehr. Aber man lernt ja nie aus. Kennt ihr eine noch bessere Lösung?
If you’re still on the fence: grab your favorite earphones, head down to a Best Buy and ask to plug them into a Zune then an iPod and see which one sounds better to you
Ein paar allgemeine Fragen von einem Java-Anfänger:
Wie groß ist der zwischen Java und JavaScript? Und wo unterscheiden sich die Anwendungsgebiete?
Lohnt sich auch JavaScript zu lernen?
Danke im Voraus
Klasse endlich was neues gelernt, werde ich mir gleich aneignen.
geht übrigens auch bei PHP:
echo !!”1″; //true
echo !!”0″; //false
echo !!1; //true
echo !!0; //false
vg
Stefan
Hallo Stefan,
danke für deinen Kommentar. Hattest du zufälligerweise auch ausprobiert, ob der Cast von String zu Int mittels + in PHP auch funktioniert?