Функция склонения числительных для русского языка? Всем доброго дня.
Суть вопроса такова: надо написать функцию склонения числительных, на вход принимает:
число и 3 слова, а возвращает слово! Например -> А, гость, гостя, гостей — где А, целое число.
Я написал ее но, только до цифры 5, как "допилить" правильность вывода слова, для любого числа которое вводится?
(Я так понимаю надо Math.abs() - использовать?)
` var getRightName = function (roomsCount) {
var roomsText = roomsCount + ' комнат';
if (roomsCount === 1) {
roomsText += 'a';
} else if ([2, 3, 4].includes(roomsCount)) {
roomsText += 'ы';
} else if (roomsCount === 5) {
roomsText = roomsText;
}
return roomsText;
};`

21 Авг 2019 в 06:21
177 +1
0
Ответы
1

Да, вы правы. Для того чтобы корректно склонять числительные для любого числа, необходимо использовать функцию Math.abs() для получения положительного значения числа, а затем выполнить проверку на последнюю цифру числа.

Вот исправленный вариант функции:

var getRightName = function (roomsCount) {
var roomsText = roomsCount + ' комнат';
roomsCount = Math.abs(roomsCount);
var lastDigit = roomsCount % 10;
var lastTwoDigits = roomsCount % 100;
if (lastTwoDigits >= 11 && lastTwoDigits <= 14) {
roomsText += 'ов';
} else if (lastDigit === 1) {
roomsText += 'a';
} else if (lastDigit >= 2 && lastDigit <= 4) {
roomsText += 'ы';
} else {
roomsText += '';
}
return roomsText;
};
console.log(getRightName(-1)); // 1 комната
console.log(getRightName(2)); // 2 комнаты
console.log(getRightName(5)); // 5 комнат
console.log(getRightName(11)); // 11 комнат
console.log(getRightName(21)); // 21 комната

Этот код будет корректно склонять числительные для любого числа, включая отрицательные числа.

20 Апр в 13:19
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 83 795 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир