Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 3种可能结果的用户三元运算符_Javascript_Jquery_Ternary Operator - Fatal编程技术网

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

Javascript 3种可能结果的用户三元运算符,javascript,jquery,ternary-operator,Javascript,Jquery,Ternary Operator,我想基于以下内容编写一个三元运算符: var statusJSON = { '- Select -': '', 'Active': true, 'Inactive': false }; 目前我有 statusFlag: $('#statusFlag').val() == 'true' ? true : false 这适用于true和false值,但不处理第三种情况(即空“”) 如何处理相同的问题?尝试嵌套三元操作符 statusFlag: $('#statusFlag

我想基于以下内容编写一个三元运算符:

var statusJSON = {
    '- Select -': '',
    'Active': true,
    'Inactive': false
};
目前我有

statusFlag: $('#statusFlag').val() == 'true' ? true : false
这适用于
true
false
值,但不处理第三种情况(即空
“”


如何处理相同的问题?

尝试嵌套
三元操作符

statusFlag: $('#statusFlag').val() == 'true' ?
          true : $('#statusFlag').val() == 'false' ? false : "empty";

尝试嵌套
三元
运算符

statusFlag: $('#statusFlag').val() == 'true' ?
          true : $('#statusFlag').val() == 'false' ? false : "empty";
您只需添加以下多个条件:

a ? b : (c ? d : e)
()
是不必要的,但在我看来,当您编写它时,如果没有换行符,它们会提高可读性

这意味着:

if(a){
    b
}else{
    if(c){
        d
    }else{
        e
    }
}
因此,基本上,您在前一个三元运算符的
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`
您只需添加以下多个条件:

a ? b : (c ? d : e)
()
是不必要的,但在我看来,当您编写它时,如果没有换行符,它们会提高可读性

这意味着:

if(a){
    b
}else{
    if(c){
        d
    }else{
        e
    }
}
因此,基本上,您在前一个三元运算符的
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`

您希望在三元表达式中使用两个条件,例如:

value = (condition1) ? a : (condition2) ? c : d;
你的情况:

statusFlag: $('#statusFlag').val() == 'true' ? true : 
        $('#statusFlag').val() == '' ? 'empty' : false

您希望在三元表达式中使用两个条件,例如:

value = (condition1) ? a : (condition2) ? c : d;
你的情况:

statusFlag: $('#statusFlag').val() == 'true' ? true : 
        $('#statusFlag').val() == '' ? 'empty' : false

您可以使用
statusJSON
作为查找表:

var val = $('#statusFlag').val();
… statusFlag: val in statusJSON ? statusJSON[val] : false /*or whatever*/
如果您确定只有这三个值发生,或者对于
未定义的结果没有问题,那么您最好使用

… statusFlag: statusJSON[$('#statusFlag').val()]

您可以使用
statusJSON
作为查找表:

var val = $('#statusFlag').val();
… statusFlag: val in statusJSON ? statusJSON[val] : false /*or whatever*/
如果您确定只有这三个值发生,或者对于
未定义的结果没有问题,那么您最好使用

… statusFlag: statusJSON[$('#statusFlag').val()]

我对对象与条件运算符的关系有点困惑。如果“$('#statusFlag').val()`返回其中一个属性名,则应使用
statusJSON[$('#statusFlag').val()]
。这就是您真正想要的吗?这需要一个四元运算符。这似乎是一个查找/查找方法的工作可能更好地使用
'-Select-':“empty'、
statusFlag:$(“#statusFlag”).val()
我对对象与条件运算符的关系有点困惑。如果“$('#statusFlag').val()`返回其中一个属性名,则应使用
statusJSON[$('#statusFlag').val()]
。这就是您真正想要的吗?这需要一个四元运算符。这似乎是一个查找/查找方法的作业。可能更好地使用
'-Select-':“empty'、
statusFlag:$('#statusFlag')。val()
解释得很好。非常感谢。解释得很好。谢谢。