Функция склонения числительных для русского языка? Всем доброго дня. Суть вопроса такова: надо написать функцию склонения числительных, на вход принимает: число и 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; };`
Да, вы правы. Для того чтобы корректно склонять числительные для любого числа, необходимо использовать функцию Math.abs для получения положительного значения числа, а затем выполнить проверку на последнюю цифру числа.
Да, вы правы. Для того чтобы корректно склонять числительные для любого числа, необходимо использовать функцию 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 комната
Этот код будет корректно склонять числительные для любого числа, включая отрицательные числа.