使用 javascript 在图表的 for 循环中获取数组数据

Get array data in for loop for chart using javascript

我有一个 for 循环来获取我试图解析到图表中的数据。我似乎只能得到第一位数据,而不是数组中的所有数据。

我的 JS 文件 -

   for (i = 0; i < results; i++) {
       const assetName = await tronWeb.trx.getTokenByID(str.assetV2[i]['key']);
       var getAsset = JSON.stringify(assetName);
       var name = JSON.parse(getAsset);
       var assetValueRaw = str.assetV2[i]['value'] / 100;
       var assetValue = assetValueRaw.toLocaleString()

       // get chart data from for loop
       chartData = [name.abbr, assetValueRaw];
   }



   anychart.onDocumentReady(function () {

      // create pie chart with passed data from for loop
      var chart = anychart.pie([chartData]);

      var palette = anychart.palettes.rangeColors();
      palette.items([{ color: '#64b5f6' }, { color: '#455a64' }]);
      chart.background().fill("#222E3A 0.0");
      chart.height('100%');
      chart.width('100%');
      chart.padding(80);
      chart
         .innerRadius('95%')
         .palette(palette);
      chart.container('container');
    chart.draw();
  });

示例数据:

chartData = [['test', 477], ['test2 ', 1000],];

图表已填充,但应该有 3 个值,但只有 returns 1. 如何让循环将所有 3 个数据值推送到 chartData 变量?

您在每次迭代时都将一个新数组重新分配给 chartData,因此它最终只有最后一个值。相反,您应该在循环之前创建一个空数组并将 push 个元素放入其中。

let chartData = [];
for (i = 0; i < results; i++) {
       const assetName = await tronWeb.trx.getTokenByID(str.assetV2[i]['key']);
       var getAsset = JSON.stringify(assetName);
       var name = JSON.parse(getAsset);
       var assetValueRaw = str.assetV2[i]['value'] / 100;
       var assetValue = assetValueRaw.toLocaleString()

       // get chart data from for loop
       chartData.push([name.abbr, assetValueRaw]);
   }
//...
var chart = anychart.pie(chartData);