这个问题与 Highcharts 直接相关,但实际上与一般 JavaScript 和循环更相关。
我的代码如下:
load:function(){
var series0 = this.series[0];
var series1 = this.series[1];
setTimeout(function(){
series0.addPoint(myjson.list[0].value);
series1.addPoint(myjson.list[1].value);
}, 1000);
}
我想首先展示一个有效的代码示例。使用 Highcharts,此代码从我的 JSON 列表中收集指定索引并将它们附加到我现有的图表中。
当尝试使用 for
循环执行相同的操作时,我最终搞砸了。
我的for
循环尝试:
var update = [];
for (i = 0; i < myjson.list.length; i++){
update[i] = this.series[i];
update.addPoint(myjson.list[i].Printvalue);
}
我的循环逻辑显然有问题,但我无法弄清楚到底是什么问题。运行此循环代码时出现错误:
update.addPoint is not a function
我最大的猜测是这与我处理 this
实例的方式有关。
最佳答案
在您的示例中,update
是一个普通数组,因为您使用 var update = []
声明它。普通的 JavaScript 数组没有名为 addPoint
的函数。
我不确定它应该是什么,但它绝对与您使用 this
没有任何关系。
如果 this.series
中的项目包含 addPoint
,您可能需要使用此:
update[i].addPoint(myjson.list[i].Printvalue);
注意更新
后的[i]
。
关于Javascript动态生成变量 'this',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45020807/