Если уж так хочется писать не целые слова, а куски, пожалуйсто:
num + 'бутыл' + wordend(num, ['ка', 'ки', 'ок'])
При этом в отличие от того, что предлагаете, вы между цифрой и текстом может быть любой разделитель, а не только пробел.
Но это мелочи, интересно другое:
1. Чем плохая? (по сути они одинаковы же)
2. Интерес не в длинном однострочнике, а в максимальном сокращении лишних телодвижений.)
Сообщение от qwerty-клавиатура
|
зачем abs? хотя -1 градус, -2 градусов. Не все таки оно не нужно
|
function wordend(num, words){
if((num=Math.abs(num%100)) > 20) num%=10;
return words[ (num > 4 || num === 0) + (num !== 1) ];
}
function pluralize(count, base, singular, plural1, plural2) {
base = count + ' ' + base;
count = (count %= 100) > 20 ? count % 10 : count;
return base + (count == 0 || count > 4 ? plural2 : count > 1 ? plural1 : singular);
}
alert([
'wordend: -2 градус' + wordend(-2, ['', 'a', 'ов']),
'\npluralize: ' + pluralize(-2, 'градус', '', 'а', 'ов')
]);
И почему же не нужно? Сейчас не нужно, а потом получив глюк отвлекаться от работы и вспоминать, что в функции нет проверки на знак?