it-swarm.com.de

Wie kann man einen Booleschen Wert umschalten?

Gibt es eine wirklich einfache Möglichkeit, einen Booleschen Wert in Javascript umzuschalten?

Bisher ist das Beste, was ich außerhalb des Schreibens einer benutzerdefinierten Funktion habe, das Ternäre:

bool = bool ? false : true;
367
Chris Dutrow
bool = !bool;

Dies gilt in den meisten Sprachen.

824
Jordan

Wenn Sie nichts dagegen haben, dass der Boolesche Wert in eine Zahl umgewandelt wird (entweder 0 oder 1), können Sie den Zuweisungsoperator "Bitweise XOR" verwenden. Wie so:

bool ^= true;   //- toggle value.


Dies ist besonders gut, wenn Sie lange, beschreibende boolesche Namen verwenden, z.

var inDynamicEditMode   = true;     // Value is: true (boolean)
inDynamicEditMode      ^= true;     // Value is: 0 (number)
inDynamicEditMode      ^= true;     // Value is: 1 (number)
inDynamicEditMode      ^= true;     // Value is: 0 (number)

Das ist für mich einfacher zu scannen, als die Variable in jeder Zeile zu wiederholen.

Diese Methode funktioniert in allen (Haupt-) Browsern (und den meisten Programmiersprachen).

79
Brock Adams
bool = bool != true;

Einer der Fälle.

10
Feeco

Lassen Sie uns dies in Aktion sehen:

var b = true;

console.log(b); // true

b = !b;
console.log(b); // false

b = !b;
console.log(b); // true

Wie auch immer, es gibt keinen kürzeren Weg als den, den Sie derzeit haben.

4
student

Ich habe nach einer Umschaltmethode gesucht, die dasselbe tut, mit Ausnahme eines Anfangswerts von null oder undefined, wobei es false werden sollte.

Hier ist es:

booly = !(booly != false)
1
HeyJude
bool === tool ? bool : tool

wenn der Wert wahr sein soll, wenn tool (ein anderer Boolescher Wert) den gleichen Wert hat

1
Ardhi