ЗАДАЧА

  • Дана функция numberWithSpaces - код
  • Нужно изучить функцию, описать как она работает и для чего нужна. Перепиать используя другие, более понятные способы.
  • Исходная функция должна остаться без изменений, решение оформить в newFunc, которая выполняет те же самые действия.
  • Тесты должны остаться без изменений.
  • Задание будет выполнено, если все тесты завершились без Failed
  • Доп. задание: в коде есть теор. ошибка, которая вернет undefined, найдите её.

Как работает функция numberWithSpaces?

Преобразует исходное число к двум форматам: исходное, но с делением на 3-ки целой части числа (111222333.2234 -> 111 222 333.2234) и сокращением числа для предусмотренных случаев, например 22 333 444 будет сокращено до 22M. Функция получает на вход число, а также булев флаг для выбора формата возвращаемого значения. Если число следует вернуть полноразмерным, то при помощи регулярного выражения оно преобразуется на ожидаемый формат. Если число должно быть сокращено, то опираясь на строковую длину исходного числа определяется добавочная аббревиатура и количество знаков после запятой. Результат проходит доп. форматирование по итогам которого в дробной части нет нулей и число цифр суммарно не более 4-х (напр 3 в целой и 1 в дробной). Замечания по некорректной логике приведены в ссылке на решение.

Дополнительное задание

ВАЖНО! Исправление ошибок привело к появлению Failed. Если игнорировать исходные ошибки, решение теряет в лаконичности и полнится костылями. В коде есть ряд ошибок, которые не связаны с undefined. Они описаны в начале решения. undefined код вернет, если сработает блок tryCatch и стоит проверить валидность данных.