Множественная форма слова в зависимости от количества



Однажды возникла задачка выводить правильно количество, допустим, товаров. Правильно - это значит не "количество товаров: N", а "N товаров". То есть стало нужно написать фукнцию, которая в зависимости от числа N выдает правильную форму слова "товар".

На выходе получилась простенькая функция на javascript-е, которую я и сохраняю для упрощения дальнейшего воспроизведения, а так же предалагаю вашему вниманию:

function plural_word (n) {
  if (n%100 > 10 && n%100 < 20) return 'товаров';
  switch (n % 10) {
    case 1:return 'товар';
    case 2:return 'товара';
    case 3:return 'товара';
    case 4:return 'товара';
    default:return 'товаров';
  }
}

Смысл предельно прост - в зависимости от остатка деления на 10 выдаем правильную форму слова, за исключением чисел, оканчивающихся на 11 .. 19.

Первое условие получилось немного сложным в связи с отказом javascript-а обрабатывать 20 > n%100 > 10

Комментарии

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Разрешаю теги: <a> <em> <strong> <pre> <ul> <ol> <li>
  • Строки и параграфы переносятся автоматически.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.

Подробнее о форматировании

Image CAPTCHA
Регистр символов учитывается.