我正在开发一个项目,并希望通过将系列数组分配给高图来动态创建高级图。我使用一些虚拟数据来生成数组,但是,在我下面提供的示例中,两列非常相同,这是不期望的。 examples
$(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
});
});
非常感谢你。
答案 0 :(得分: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);
}
[...]
然后在每次循环迭代中,将创建一个新的对象和数组,并用随机数据填充。