仅在JavaScript中的三元运算符中条件为true时分配

问题描述 投票:31回答:7

是否可以在JavaScript中执行此类操作?

max = (max < b) ? b;

换句话说,仅在条件为真时指定值。如果条件为假,则不执行任何操作(无分配)。这可能吗?

javascript ternary-operator
7个回答
69
投票

那么不要使用ternary operator,它需要第三个参数。如果你不想改变它,你需要将max重新分配给maxmax = (max < b) ? b : max)。

一个if-statement更清楚:

if (max < b) max = b;

如果你需要它作为表达式,你可以(ab)使用AND的短路评估:

(max < b) && (max = b)

顺便说一句,如果你想避免重复变量名(或表达式?),你可以使用maximum function

max = Math.max(max, b);

11
投票

具有三元运算符的表达式必须具有两个值,即对于真和假的情况。

但是你可以

max = (max < b) ? b : max;

在这种情况下,如果condition为false,则max的值不会改变。


5
投票

如果条件为假,您可以将max设置为自身。

max = (max < b) ? b : max;

或者您可以尝试使用&&运算符:

(max < b) && (max = b);

或者为了保持代码简单,只需使用if即可。

if(max < v) max = b;

4
投票

我认为三元更适合试试这个

(max < b) ? max = b : '';

3
投票

没有特定的运算符不是三元运算符,但您可以像这样使用它:

max = (max < b) ? b : max;

1
投票

我认为更好的方法可能是

max = Math.max(max, b)

0
投票

看:

(max < b) ? max = b : null;

它会发挥作用,我认为你想避免使用结肠,不幸的是,它不会发生

© www.soinside.com 2019 - 2024. All rights reserved.