Javascript Highcharts:系列数据标签格式化程序函数,用于循环数据,而不是格式化数组中的所有数据

Javascript Highcharts: series datalabel formatter function to loop data not formatting all data form the array

本文关键字:数据 格式化 数组 循环 Highcharts 标签 程序 函数 用于 Javascript 系列      更新时间:2023-09-26

我遇到一个问题,格式化程序方法没有接收数组中的所有数据。例如:

   var test = [1234, 4567, 1564, 7899];
   chartData.plotOptions.series.datalabels.formatter = function () {
       for (var i = 0; i < test.length; i++) {
           // formatNumber() is a dummy method in this example
           return formatNumber(test[i]);
       }
   };
   After the loop, the datalabel only shows the first index data on each segment of bar chart. 

结果仅返回第一个索引。我不知道为什么它没有在整个数组中循环。有人能帮我一下吗?

for循环的第一次迭代后,您的代码将return,这就是为什么您只看到第一个索引的原因。

也就是说,formatter是一个应用于每个数据点的回调,所以您不需要在测试值上循环。你应该试试这样的东西:

chartData.plotOptions.series.datalabels.formatter = function() {
    return formatNumber(this.y);
}

有关可用数据,请参阅formatter文档。