Назначить, только если условие истинно в тройном операторе в JavaScript
Можно ли сделать что-то подобное в JavaScript?
max = (max < b) ? b;
Другими словами, присвойте значение, только если условие истинно. Если условие ложно, ничего не делайте (без присвоения). Возможно ли это?
Ответы
Ответ 1
Тогда не используйте троичный оператор, он требует третьего аргумента. Вам нужно будет переназначить max
на max
если вы не хотите, чтобы он менялся (max = (max < b)? b: max
).
Оператор if гораздо понятнее:
if (max < b) max = b;
И если вам нужно, чтобы оно было выражением, вы можете (ab) использовать оценку короткого замыкания AND:
(max < b) && (max = b)
Кстати, если вы хотите избежать повторения имен переменных (или выражений?), Вы можете использовать функцию Maximum:
max = Math.max(max, b);
Ответ 2
Выражение с тернарным оператором должно иметь оба значения, т.е. как для истинных, так и для ложных случаев.
Однако вы можете
max = (max < b) ? b : max;
в этом случае, если условие ложно, значение max
не изменится.
Ответ 3
Вы можете просто установить max
для себя, если условие ложно.
max = (max < b) ? b : max;
Или вы можете попробовать использовать оператор &&
:
(max < b) && (max = b);
Или, чтобы ваш код был простым, просто используйте if
.
if(max < v) max = b;
Ответ 4
Я думаю, что троянец более подходит
попробуйте это
(max < b) ? max = b : '';
Ответ 5
Существует не определенный оператор, который не является тернарным оператором, но вы можете использовать его следующим образом:
max = (max < b) ? b : max;
Ответ 6
Я думаю, что лучший подход может быть
max = Math.max(max, b)
Ответ 7
смотреть:
(max < b)? max = b: null;
это сработает, я думаю, что вы хотите избежать использования двоеточия, к сожалению, этого не произойдет