Javascript. Как склонять слова?


Приведу пример найденной на просторах интернета функции для склонения слов зависимости от чистительного.

По моему глубокому убеждению только детали способны отличить Лучшее от Хорошего. Поэтому с большим презрением отношусь, например, к магазинам, где написано «В Корзине 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 единицу, в две единицы и в пять единиц.

Этого достаточно.

,

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *