gpt4 book ai didi

javascript - 数据随 Highcharts point.update 变化

转载 作者:行者123 更新时间:2023-11-30 17:22:51 24 4
gpt4 key购买 nike

编辑:这是一个Fiddle - 与以下示例略有不同(简化)的代码,但问题相同。

我有一个简单的 Highcharts 条形图,显示 2011 年的两个系列数据( chop ):

var dataset = {};

dataset.attchange2011 = [
{y: -8.5},
{y: -8.3}
];
dataset.revchange2011 = [
{y: -14.9},
{y: -10.7}
];

这在加载图表中正确显示:

...
series: [{
name: 'Change in Revenue',
data: dataset['revchange2012']
},{
name: 'Change in Attendance',
data: dataset['attchange2012']
}]
...

我有 2012 年的第二组数据:

 dataset.attchange2012 = [
{y: 1.2 },
{y: 14.1}
];
dataset.revchange2012 = [
{y: 11.5},
{y: 37.5}
];

还有一个简单的函数,通过从单击的链接获取 data-year 值来在年份之间切换,循环遍历那一年的数据并更新系列点值,然后重绘:

...
year = $(this).data('year').toString();
$.each(chart.series[0].data, function (i, point) {
point.update(dataset['revchange'+year][i], false);
});
$.each(chart.series[1].data, function (i, point) {
point.update(dataset['attchange'+year][i], false);
});
...

第一次单击 2011 链接时,数据会正确更新。尝试切换回 2012 不起作用。

当通过 console.log(dataset) 查看各个阶段的每个数据集时,它似乎在页面加载时正确设置:

dataset 
Object
attchange2011: Array[8]
0: Object
y: -8.5
...
attchange2012: Array[8]
0: Object
y: 1.2

但是单击链接时会发生变化 - 2011 年的值被复制到 2012 年的数据集中:

dataset 
Object
attchange2011: Array[8]
0: Object
y: -8.5
...
attchange2012: Array[8]
0: Object
y: -8.5

我不知道它会在哪里或为什么会这样做。有任何想法吗?如果需要,我并不完全反对从头开始重写所有内容。

最佳答案

这是由 Highcharts 引起的。更新点时会覆盖变量。相反,使用该对象的副本:http://jsfiddle.net/RF7aW/7/

series: [$.extend(true, {}, data2013[0]), $.extend(true, {}, data2013[1])],

关于javascript - 数据随 Highcharts point.update 变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24816760/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com