/
review
/
bot
Обзор
Документация
Войти
/
review
/
bot
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
main
src/utils/formatWord/formatWord.ts
35 строк
2 KB
Semyon Okulov
init
28 июл 2025, 09:49
28 июл 2025, 09:49
874de44
Код
Авторство
О чём код?
/** * Функция для склонения слов в зависимости от числа. * Используется для правильного отображения количественных существительных в русском языке. * * @param num - Число, от которого зависит форма слова * @param one - Форма слова для единственного числа (1, 21, 31, ...) * @param few - Форма слова для чисел 2-4, 22-24, ... (например, "комментария") * @param many - Форма слова для чисел 0, 5-20, 25-30, ... (например, "комментариев") * @returns Правильная форма слова в зависимости от числа */ export const formatWord = ( num: number, one: string, few: string, many: string ): string => { // Остаток от деления на 100 используется для проверки исключений (11-14, 111-114 и т.д.) const mod100 = num % 100 // Остаток от деления на 10 используется для определения последней цифры числа const mod10 = num % 10 // Если число заканчивается на 1, но не на 11, возвращаем форму для единственного числа if (mod10 === 1 && mod100 !== 11) { return one } // Если число заканчивается на 2, 3 или 4, но не на 12-14, возвращаем форму для чисел 2-4 if (mod10 >= 2 && mod10 <= 4 && !(mod100 >= 12 && mod100 <= 14)) { return few } // Во всех остальных случаях возвращаем форму для множественного числа return many }