Я использую chartjs-plugin-datalabels для постоянного отображения меток данных над каждым набором данных диаграммы. Я использовал следующий код в каждом скрипте для отображения суммы валюты в долларах США:
plugins: {
datalabels: {
formatter: function(value, context) {
return '$' + value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}
}
}
, который затем выдает: $ #, ###, ###
Чтобы сэкономить место, как я могу переписать этот код для отображения вышеуказанного количества в сокращенной форме, например: $ #. # M . Первая запятая становится десятичной точкой, а остальные целые числа округляются.
Таким образом, у миллиардов будет B , у миллионов - M , а у тысяч - K и т. Д.
Примеры:
10 500 000 000 -> 10,5 млрд.
1 500 000 000 долларов США -> 1,5 миллиарда долларов США
$ 10 500,00 -> $ 10,5 млн
1 500 000 долларов США -> 1,5 миллиона долларов США
$ 10 500 -> $ 10,5 тыс.
1500 долларов -> 1,5 тысячи долларов
Также было бы полезно разбить часть .replace()
.