Как сказал Рейгель, вы можете просто использовать троичный оператор ? :
, не требуя функции.
condition ? x : y;
Если condition
истинно, то возвращается x
, в противном случае возвращается y
. При его использовании просто обязательно используйте скобки.
str = "This is " + numDays + numDays == 1 ? " day" : " days" + " old";
// no matter the value of numDays, the above always evaluates to " day"
// it is equivalent to:
str = ("This is " + numDays + numDays == 1) ? (" day") : (" days" + " old");
// instead, this is probably what was wanted:
str = "This is " + numDays + (numDays == 1 ? " day" : " days") + " old";
В качестве альтернативы, если у вас была действительно действительно действительно хорошая причина сделать что-то подобное тому, что вы пробовали в своем примере, вы могли бы заставить это работать так :
$("#amount").val(
ui.value + ' Year' + (function(){return (ui.value == 1) ? '' : 's';})()
);
... но если бы я увидел что-то подобное в производстве, я был бы вынужден охотиться на тебя с большим топором.