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()
解释得很好。非常感谢。解释得很好。谢谢。