将布尔结果转换为数字/整数

441

我有一个变量,存储的是 falsetrue,但我需要分别得到 01。如何做到这一点?


9
以下是一些提供的技术性能比较:http://jsperf.com/conversion-from-boolean-to-number。 - Sam
6
Node.JS 用户应该使用 bool === true ? 1 : 0,因为它在 V8 引擎中是最快的。 - Qix - MONICA WAS MISTREATED
6
或者只需使用 bool ? 1 : 0;。该语句的意思是,如果布尔值为真,则返回1,否则返回0。 - Mouloud85
22个回答

0

将建议的方法放在jsben.ch中: https://jsben.ch/d33N1

它会在每次测试中给出不同的结果,但是每次测试中最好的方法都是位运算:0|bool / bool|0 / 1&bool / 1&bool / ~~bool


-1

我知道这样做有点晚了,但是你可以使用所谓的取模。在JS中,取模运算符用百分号(%)表示,目的是给出余数。因此,如果我们将数字除以2%,它将寻找任何可被2整除的数字。如果不行,则余数为1,这总是成立的,所以你知道它是奇数。在这种情况下,你要做的是首先给出你想要的任意数字的integer,在这种情况下,你需要一个01

const integer = 0;

如果您插入1,它将打印false,而0将打印true
const isEven = (integer % 2) === 0;

if (isEven) {
    console.log('true');
} else {
    console.log('false');
} 

希望这能有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接