使用 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);
我有一个 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);