实例:
我有一个设置,我有一个包含四个系列的图表。 我想允许用户选择不同的数据集,然后
然而,我被困在'删除'阶段,因为在删除前两个系列后,它告诉我接下来的2个未定义。
删除系列的功能:
function updateData(chart, dataSet) {
console.log(chart);
$.each(chart.series, function(i,ser) {
if(typeof(ser) != 'undefined') {
console.log(ser);
ser.remove();
}
});
}
其中2个系列仍在图表上。
当我在console.log图表对象时,它只列出了两个系列。
问题:
答案 0 :(得分:2)
看起来您的代码正在修改正在迭代的数组。试试这个并观察日志。
$.each(chart.series, function(i,ser) {
console.log(i + " / " + chart.series.length);
ser.remove();
});
观察当前索引i
如何增加,并且每次迭代后系列长度都在减少。
0 / 4
1 / 3
2 / 2 << chart.series[2] becomes undefined for chart.series.length=2
在第三次迭代中,i=2
&amp; chart.series.length=2
=&gt; ser=undefined
Proper way to remove all series data from a highcharts chart?提供了正确的方法。始终删除索引0
处的系列(如果存在)。
while(chart.series.length > 0)
chart.series[0].remove(true);