Как-то сложновато, я использую функцию проще:
/** .* Выбирает форму слова в зависимости от числительного .* @param {Integer} num Число .* @param {String} form1 Форма слова для числа 1, например 1 "штука" .* @param {String} form2 Форма слова для числа 2, например 2 "штуки" .* @param {String} form5 Форма слова для числа 5, например 5 "штук" .*/ function GetCounterTemplate(num, form1, form2, form5) { var lastTwoDigits = num % 100; var lastDigit = lastTwoDigits % 10; if ((lastTwoDigits >= 11 && lastTwoDigits <= 14) || (lastDigit >= 5 && lastDigit <= 9) || lastDigit == 0) { return form5; } if (lastDigit == 1) { return form1; } return form2; } |