Приведу пример найденной на просторах интернета функции для склонения слов зависимости от чистительного.
По моему глубокому убеждению только детали способны отличить Лучшее от Хорошего. Поэтому с большим презрением отношусь, например, к магазинам, где написано «В Корзине 22 товар» или «Товаров в корзине: 22».
Ну неужели это лучше, чем «В корзине 22 товара» или «В Корзине 5 товаров».
Чтобы не делать глупых недочетов привожу пример функции.
function wordDecline(num, expressions) {
var result;
count = num % 100;
if (count >= 5 && count <= 20) {
result = expressions['2'];
} else {
count = count % 10;
if (count == 1) {
result = expressions['0'];
} else if (count >= 2 && count <= 4) {
result = expressions['1'];
} else {
result = expressions['2'];
}
}
return result;
}
console.log ( wordDecline(1, ['товар','товара','товаров']) );
console.log ( wordDecline(2, ['товар','товара','товаров']) );
console.log ( wordDecline(5, ['товар','товара','товаров']) );
Попробуйте выполнить данный код и Вы увидите правильное склонение.
Для правильной работы достаточно передать первым параметром числительное, а вторым массив из трех элементов - значение, соответствующее кол-ву в 1 единицу, в две единицы и в пять единиц.
Этого достаточно.