Войти Регистрация
Фронтенд

14. Цена в корзине Ozon: «12 345 ₽»

Лёгкая

Корзина Ozon получает суммы в копейках — так нет ошибок округления. Покажите их по-русски: группы по три цифры через неразрывный пробел (U+00A0), копейки через запятую, знак ₽ тоже через неразрывный пробел — чтобы «₽» не уехал на новую строку на узком экране.

Напишите formatPrice(kopecks) без Intl и toLocaleString. Копейки показываем двумя цифрами, только если они не нулевые: 1234550 → «12 345,50 ₽», 1234500 → «12 345 ₽». Отрицательная сумма (возврат) — со знаком минус в начале: «-1 500 ₽».

В работе: Цены в каталоге и корзине, суммы в банковских выписках, итоги заказа.

Пример 1: с копейками

Аргументы теста
1234550
Ожидается
"12 345,50 ₽"

Пример 2: без копеек

Аргументы теста
1234500
Ожидается
"12 345 ₽"
Как проверяем Объявите formatPrice — тест вызывает её сам. Таймеры и Date в тестах ненастоящие: время идёт по команде теста, поэтому setTimeout на 5 секунд проверяется мгновенно. Тестов 8: 2 открыты выше, остальные приходят после старта подхода. Лимит — 2 с на тест.
function formatPrice(kopecks) // → строка
строкичислатипографика

Источник: на задачах Ozon: корзина. Условие пересказано своими словами.

Давали на собеседовании? Ответов пока мало — ваш поможет.