gpt4 book ai didi

javascript - Highcharts - series.remove();图表中有 4 个系列,仅删除了 2 个系列

转载 作者:行者123 更新时间:2023-12-02 17:02:53 25 4
gpt4 key购买 nike

实例:

我有一个设置,其中有一个包含四个系列的图表。我想允许用户选择不同的数据集,然后

  1. 删除现有系列
  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图表对象时,它只列出了两个系列。

问题:

  1. 我这样做错了吗?有没有更好的方法来删除所有系列?
  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 & chart.series.length=2 => ser=undefined

Proper way to remove all series data from a highcharts chart?提供了执行此操作的正确方法。始终删除索引 0 处的系列(如果存在)。

while(chart.series.length > 0)
chart.series[0].remove(true);

关于javascript - Highcharts - series.remove();图表中有 4 个系列,仅删除了 2 个系列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25554039/

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