我有一个存储false或true的变量,但我需要分别为0或1。我该怎么做呢?
当前回答
Javascript有一个三元操作符,你可以使用:
var i = result ? 1 : 0;
其他回答
一元的+运算符会处理这些:
var test = true;
// +test === 1
test = false;
// +test === 0
您自然希望在存储它之前在服务器上检查它,因此在服务器上执行此操作可能是一个更明智的地方。
在我的上下文中,React Native,我从布尔获取不透明度值,最简单的方法:使用一元+运算符。
+ true; // 1
+ false; // 0
这将布尔值转换为数字;
style={ opacity: +!isFirstStep() }
try
val*1
让t = true; 让f = false; console.log (t * 1); console.log (f * 1)
输入的方法是:
Number(true) // 1
Number(false) // 0
我对所有建议的答案创建了一个JSperf比较。
TL;DR -当前所有浏览器的最佳选择是:
val | 0;
.
更新:
似乎这些天它们都是完全相同的,除了Number()函数是最慢的,而最好的val === true ?1: 0;。