dje*_*lin 9 javascript node.js
嗯,这有点像hacky:
function b2n(boo) {
return boo ? 1 : 0;
}
if(b2n(opt1) + b2n(opt2) + b2n(opt3) !== 1) {
throw new Error("Exactly one option must be set");
}
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法在Javascript中执行此操作?使用任何一个
等等.欢迎使用Javascript和Node解决方案.
在我的实际问题中,选项来自Node模块指令器,因此我不处理真正的布尔值,只是真正的虚假和虚假的东西.也可能有指挥官解决方案.
spu*_*dly 11
假设你有一系列选项,你可以这样做:
if(opts.filter(Boolean).length !== 1) {}
Run Code Online (Sandbox Code Playgroud)
在我看来,你应该有一个变量有三个可能的状态而不是......
var opt = 'a'; // (or 'b', or 'c')
Run Code Online (Sandbox Code Playgroud)
你可以这样做 :
if ( !!opt1 + !!opt2 + !!opt3 !== 1 ) {
Run Code Online (Sandbox Code Playgroud)
它有效,因为
!!使一个布尔从任何值(true如果对象评估为true在if(value))1的true和0为false.| 归档时间: |
|
| 查看次数: |
258 次 |
| 最近记录: |