Besides :
true ? 1 : 0
is there any short trick which can "translate" True->1
and False->0
in Javascript ?
I've searched but couldn't find any alternative
What do you mean by "short trick" ?
answer : same as ~~6.6
is a trick forMath.floor
Besides :
true ? 1 : 0
is there any short trick which can "translate" True->1
and False->0
in Javascript ?
I've searched but couldn't find any alternative
What do you mean by "short trick" ?
answer : same as ~~6.6
is a trick forMath.floor
Lots of ways to do this
// implicit cast
+true; // 1
+false; // 0
// bit shift by zero
true >>> 0; // 1, right zerofill
false >>> 0; // 0
true << 0; // 1, left
false << 0; // 0
// double bitwise NOT
~~true; // 1
~~false; // 0
// bitwise OR ZERO
true | 0; // 1
false | 0; // 0
// bitwise AND ONE
true & 1; // 1
false & 1; // 0
// bitwise XOR ZERO, you can negate with XOR ONE
true ^ 0; // 1
false ^ 0; // 0
// even PLUS ZERO
true + 0; // 1
false + 0; // 0
// and MULTIPLICATION by ONE
true * 1; // 1
false * 1; // 0
You can also use division by 1
, true / 1; // 1
, but I'd advise avoiding division where possible.
Furthermore, many of the non-unary operators have an assignment version so if you have a variable you want converted, you can do it very quickly.
You can see a comparison of the different methods with this jsperf.
Here is a more logical way Number()
Number(true) // = 1
Number(false) // = 0
You can use ~~boolean
, where boolean
is (obviously) a boolean.
~~true // 1
~~false // 0
To convert default switch value from boolean to numeric 0 or 1 to match your backend value.
0 should be converted into "false"
1 should be converted into "true"
This can be done using logic:
!!0 => false
!!1 => true