【发布时间】:2013-06-26 02:38:06
【问题描述】:
嗯,这有点骇人听闻:
function b2n(boo) {
return boo ? 1 : 0;
}
if(b2n(opt1) + b2n(opt2) + b2n(opt3) !== 1) {
throw new Error("Exactly one option must be set");
}
有没有更好的方法在 Javascript 中做到这一点?使用任何一个
- 更智能的布尔/数字处理
- 偷偷摸摸的数组或函数操作
等等。欢迎使用 Javascript 和 Node 解决方案。
在我的实际问题中,选项来自 Node 模块指挥官,所以我不是在处理真正的布尔值,而是真实和虚假的事情。也可能有指挥官解决方案。
【问题讨论】:
-
您要解决的用例是什么?你在验证用户输入吗?如果是这样,您可以使用单选按钮吗?
-
@ChadCook 这是服务器端。由
node.js指挥官指挥。在我的实际问题中,它默认为opt3,所以我实际上检查了> 1。 -
你是如何在服务器端运行 Javascript 的?
-
(真 + 假 === 1)。 Boolean 将自动转换为 int
-
@DmitryTeplyakov 是的,需要使用
!!确保值也是布尔值。
标签: javascript node.js