用户三元运算符,用于3种可能的结果

tes*_*dtv -3 javascript jquery ternary-operator

我想根据以下内容编写三元运算符;

var statusJSON = {
    '- Select -': '',
    'Active': true,
    'Inactive': false
};
Run Code Online (Sandbox Code Playgroud)

目前我有

statusFlag: $('#statusFlag').val() == 'true' ? true : false
Run Code Online (Sandbox Code Playgroud)

这适用于truefalse值,但不处理第三个条件(即空"")

我该如何处理?

Cer*_*rus 8

statusFlag: $('#statusFlag').val() == 'true' ? true : 
            $('#statusFlag').val() == '' ? 'empty' : false
Run Code Online (Sandbox Code Playgroud)

您可以添加如下多个条件:

a ? b : (c ? d : e)
Run Code Online (Sandbox Code Playgroud)

() 没有必要,但在我看来,当你编写没有换行符时,它们会提高可读性.

这意味着:

if(a){
    b
}else{
    if(c){
        d
    }else{
        e
    }
}
Run Code Online (Sandbox Code Playgroud)

所以,基本上,你是else在前一个的子句中嵌套另一个三元运算符.你可以随意使用:

a ? b :   // if(a) then `b`
c ? d :   // else, if(c) then `d`
e ? f :   // else, if(e) then `f`
g ? h :   // else, if(g) then `h`
i ? j : k // else, if(i) then `j`, else `k`
Run Code Online (Sandbox Code Playgroud)


Raj*_*amy 3

尝试嵌套ternary运算符,

statusFlag: $('#statusFlag').val() == 'true' ?
          true : $('#statusFlag').val() == 'false' ? false : "empty";
Run Code Online (Sandbox Code Playgroud)