Highchart 生成数组系列
2016-06-12
406
我正在做一个项目,想通过将系列数组分配给 highchart 来动态创建 highchart。我使用一些虚拟数据来生成数组,但是,在下面提供的示例中,两列完全相同,这是意料之外的。 示例
$(function () {
var field_result = new Object();
var series = [];
var result_array = [];
var fields = [32, 22]
for (var i=0; i<fields.length; i++)
{
field_result.name = fields[i];
for (var m=0; m<4; m ++) {
result_array[m] = Math.random()*10;
}
field_result.data = result_array;
series.push(field_result);
}
$('#container').highcharts({
chart: {
type: 'column'
},
title: {
text: 'Column chart with negative values'
},
xAxis: {
categories: ['Apples', 'Oranges', 'Pears', 'Grapes', 'Bananas']
},
credits: {
enabled: false
},
series: series
});
});
非常感谢。
1个回答
您打算创建两个具有单独数据数组的不同系列对象,并将它们放入系列数组中。但是,您正在为每个单独的系列在循环外初始化这些对象,因此最终会用第二个数据覆盖第一个数据对象。
您只需将初始化移到循环内:
$(function () {
var series = [];
var fields = [32, 22];
for (var i=0; i<fields.length; i++)
{
var field_result = new Object(); // <---- moved here
var result_array = []; // <---- moved here
field_result.name = fields[i];
for (var m=0; m<4; m ++){
result_array[m] = Math.random()*10;
}
field_result.data = result_array;
series.push(field_result);
}
[...]
然后在每次循环迭代中,将创建一个新对象和数组并用随机数据填充。
Martin Schneider
2016-06-13