Можно ли сделать что-то подобное в JavaScript?
max = (max < b) ? b;
Другими словами, присвойте значение, только если условие истинно. Если условие ложно, ничего не делайте (без присвоения). Возможно ли это?
Можно ли сделать что-то подобное в JavaScript?
max = (max < b) ? b;
Другими словами, присвойте значение, только если условие истинно. Если условие ложно, ничего не делайте (без присвоения). Возможно ли это?
Тогда не используйте троичный оператор, он требует третьего аргумента. Вам нужно будет переназначить 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);
Выражение с тернарным оператором должно иметь оба значения, т.е. как для истинных, так и для ложных случаев.
Однако вы можете
max = (max < b) ? b : max;
в этом случае, если условие ложно, значение max не изменится.
Вы можете просто установить max для себя, если условие ложно.
max = (max < b) ? b : max;
Или вы можете попробовать использовать оператор &&:
(max < b) && (max = b);
Или, чтобы ваш код был простым, просто используйте if.
if(max < v) max = b;
Я думаю, что троянец более подходит попробуйте это
(max < b) ? max = b : '';
Существует не определенный оператор, который не является тернарным оператором, но вы можете использовать его следующим образом:
max = (max < b) ? b : max;
Я думаю, что лучший подход может быть
max = Math.max(max, b)
смотреть:
(max < b)? max = b: null;
это сработает, я думаю, что вы хотите избежать использования двоеточия, к сожалению, этого не произойдет