В корзине Ozon пишут «В корзине 3 товара», в выдаче — «Найдено 1 421 товар», в отзывах — «21 отзыв». Если склонять по правилу «1 — товар, остальное — товаров», получается «22 товаров».
Напишите plural(n, forms). forms — три формы: ["товар", "товара", "товаров"] (для 1, для 2–4, для 5–20). Верните строку "<n> <форма>".
Правило для целых: последняя цифра 1 — первая форма, кроме чисел на 11; последняя цифра 2–4 — вторая, кроме 12–14; остальное — третья. Для отрицательных правило берётся по модулю, знак в числе остаётся.
Для дробных всегда вторая форма («1,5 килограмма»), а точка в числе заменяется запятой. Разделители тысяч не нужны.
В работе: Счётчик корзины и выдачи: 1, 2, 5, 11, 21, 111 и 1,5 кг — шесть разных случаев на одном экране.
Пример 1: один
1, ["товар", "товара", "товаров"]
"1 товар"
Пример 2: три
3, ["товар", "товара", "товаров"]
"3 товара"
plural — тест вызывает её сам. Таймеры и Date в тестах ненастоящие: время идёт по команде теста, поэтому setTimeout на 5 секунд проверяется мгновенно. Тестов 13: 2 открыты выше, остальные приходят после старта подхода. Лимит — 2 с на тест.
function plural(n, forms) // → string
Источник: на задачах Ozon: корзина и выдача. Условие пересказано своими словами.
Ожидаемый ответ не нужен: покажем, что вернула функция.
Здесь появится результат отправки.