Функция склонения числительных для русского языка? Всем доброго дня.
Суть вопроса такова: надо написать функцию склонения числительных, на вход принимает:
число и 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
215 +1
0
Ответы
1

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

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

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

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

20 Апр 2024 в 13:19
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир