DonTraffic
@DonTraffic
Frontend-developer

Как изменить строку 10000 на 10 тысяч через функцию?

Нужна функция, которая будет из строки "5 000 000 — 12 000 000₽" брать 12 000 000 и переводить её в формат "12 мил. ₽"
  • Вопрос задан
  • 155 просмотров
Решения вопроса 1
profesor08
@profesor08 Куратор тега JavaScript
Берешь с интернета функцию, подставляешь нужные сокращения, пользуешь функцию сколько надо.

/**
 * Format numbers into 1K, 5M, etc...
 * @param n - number to be rouded and formatter
 * @param decimal - decimal digits count
 * @returns rounded and formatter value.
 * @example
 * formatCompact(1000) // 1K
 * formatCompact(1958) // 2K
 * formatCompact(1499) // 1K
 * formatCompact(30056456345) // 30B
 * formatCompact(1958, 2) // 1.96K
 */
export const formatCompact = (n: number, decimal: number = 0): string => {
  if (n === 0) {
    return n.toFixed(decimal);
  }

  const notations = ["", "K", "M", "B", "T", "P", "E", "Z", "Y"];
  const id = Math.floor(Math.log(n) / Math.log(1000));

  if (id < 0) {
    return n.toString();
  }

  return `${parseFloat((n / Math.pow(1000, id)).toFixed(decimal))}${
    notations[id]
  }`;
};
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы