Check exactly one boolean option set

后端 未结 6 521
后悔当初
后悔当初 2021-01-17 18:21

Well, this is kind of hacky:

function b2n(boo) {
    return boo ? 1 : 0;
}

if(b2n(opt1) + b2n(opt2) + b2n(opt3) !== 1) {
    throw new Error(\"Exactly one o         


        
6条回答
  •  悲哀的现实
    2021-01-17 19:07

    Assuming you had an array of options, you could do:

    if(opts.filter(Boolean).length !== 1) {}
    

    It seems to me though that you ought to have one variable with three possible states instead...

    var opt = 'a'; // (or 'b', or 'c')
    

提交回复
热议问题