只在JavaScript中的三元运算符条件为真时才分配
问题描述:
在JavaScript中可以这样做吗?只在JavaScript中的三元运算符条件为真时才分配
max = (max < b) ? b;
换句话说,只有当条件为真时才赋值。如果条件为假,则不做任何事(不分配)。这可能吗?
答
不要使用ternary operator那么它需要第三个参数。如果您不希望它改变(max = (max < b) ? b : max
),您需要重新分配max
到max
。
的if-statement更加清晰:
if (max < b) max = b;
如果你需要它是一个表达式,你可以(AB)使用的AND短路评价:
(max < b) && (max = b)
顺便说一句,如果你想避免重复变量名称(或表达式?),你可以使用maximum function:
max = Math.max(max, b);
答
没有,是不是三元运营商特定的运算,但你可以使用它像这样:
max = (max < b) ? b : max;
答
您可以只设置max
本身如果条件是假的。
max = (max < b) ? b : max;
或者你可以尝试使用&&
操作:
(max < b) && (max = b);
或者保持代码简单,只需使用一个if
。
if(max < v) max = b;
答
与三元运算必须表达兼得值,即两者的真假的情况。
但是,您可以
max = (max < b) ? b : max;
在这种情况下,如果条件为假的max
价值不会改变。
是有一些原因,使用正常'if'声明避免? – 2013-02-21 18:03:36
max =(max Pandian 2013-02-21 18:04:46
很hacky '(max Musa 2013-02-21 18:07:52