Est-il possible de faire quelque chose comme ça en JavaScript?
max = (max < b) ? b;
En d'autres termes, attribuez une valeur uniquement si la condition est vraie. Si la condition est fausse, ne faites rien (aucune affectation). Est-ce possible?
N'utilisez pas opérateur ternaire alors, cela nécessite un troisième argument. Vous devrez réaffecter max
à max
si vous ne voulez pas qu'il change (max = (max < b) ? b : max
).
Un if-statement est beaucoup plus clair:
if (max < b) max = b;
Et si vous en avez besoin pour être une expression, vous pouvez (ab) utiliser l'évaluation en court-circuit de ET :
(max < b) && (max = b)
Btw, si vous voulez éviter de répéter des noms de variables (ou des expressions?), Vous pouvez utiliser la fonction maximum :
max = Math.max(max, b);
Une expression avec opérateur ternaire doit a les deux valeurs, c'est-à-dire pour les cas vrai et faux.
Vous pouvez cependant
max = (max < b) ? b : max;
dans ce cas, si la condition est fausse, la valeur de max
ne changera pas.
Vous pouvez simplement définir max
sur lui-même si la condition est fausse.
max = (max < b) ? b : max;
Ou vous pouvez essayer d'utiliser le &&
opérateur:
(max < b) && (max = b);
Ou pour garder votre code simple, utilisez simplement un if
.
if(max < v) max = b;
Je pense que le ternaire est plus approprié, essayez ceci
(max < b) ? max = b : '';
Il n'y a pas d'opérateur spécifique qui n'est pas l'opérateur ternaire, mais vous pouvez l'utiliser comme ceci:
max = (max < b) ? b : max;
Je pense qu'une meilleure approche pourrait être
max = Math.max(max, b)
regardez:
(max < b) ? max = b : null;
ça va marcher, je pense que tu veux éviter d'utiliser un colon, malheureusement, ça n'arrivera pas