Reputation: 16204
How can I flip the value of a boolean variable in javascript, without having to include the variable name twice? So
foobarthings[foothing][barthing] = !foobarthings[foothing][barthing];
without writing foobarthings[foothing][barthing]
twice.
Upvotes: 35
Views: 21333
Reputation: 128
you can create a new constructor with a boolean property and then add a prototype to flip that
function Bit(bit=false) {
this._ = bit;
}
Bit.prototype.flip = function() {
this._ = !this._;
return this._
}
//example:
var foo = new Bit();
console.log(foo._) //logs false
foo.flip() //flips to true
console.log(foo._); //logs true
console.log(foo.flip()) //flips to false and logs it
Upvotes: 0
Reputation: 1638
To flip the value of a boolean variable in JS you need the syntax like this:
return !foo;
It's really that easy...
Or you can do (foo ^= 1) == true
(must be == not ===)
Upvotes: -1
Reputation: 75679
You can do this:
foo ^= 1
But this really switches foo between 0 and 1, not true and false.
Upvotes: 13
Reputation: 9370
var value = true;
alert(value);
value ^= true;
alert(value);
You could get 1 or 0 here
Upvotes: 3
Reputation: 1169
You can have just foo and !foo in the place where you execute it or check the condition.
Upvotes: -3