Javascript使用';这';

Javascript使用';这';,javascript,highcharts,Javascript,Highcharts,这个问题与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)

这个问题与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
循环以执行相同的操作时,我最终失败了

我的循环尝试的

var update = [];
   for (i = 0; i < myjson.list.length; i++){
       update[i] = this.series[i];
       update.addPoint(myjson.list[i].Printvalue);
   }
var更新=[];
对于(i=0;i
我的循环逻辑显然有问题,但我无法准确地找出问题所在。运行此循环代码时,我得到一个错误:

update.addPoint不是一个函数


我最大的猜测是它与我处理
这个
实例的方式有关

在您的示例中,
update
是一个普通数组,因为您使用
var update=[]
声明它。普通JavaScript数组没有名为
addPoint
的函数

我不确定它应该是什么,但它肯定与您使用
没有任何关系

如果
this.series
中的项目包括
addPoint
,则可能需要使用此选项:

update[i].addPoint(myjson.list[i].Printvalue);

请注意,在您的示例中,
update

之后的
[i]
是一个普通数组,因为您使用
var update=[]
声明它。普通JavaScript数组没有名为
addPoint
的函数

我不确定它应该是什么,但它肯定与您使用
没有任何关系

如果
this.series
中的项目包括
addPoint
,则可能需要使用此选项:

update[i].addPoint(myjson.list[i].Printvalue);

请注意
[i]
更新后的

正是我要在答案中输入的内容,goEDIT:Argh。还有一个问题。我的函数可以工作,但在合并
setTimeout
时不能工作。我得到一个
无法读取未定义的属性2
,这意味着
setTimeout
函数和索引存在一些问题。编辑:Nvm。在这个例子()的帮助下,我找到了答案,goEDIT:Argh。还有一个问题。我的函数可以工作,但在合并
setTimeout
时不能工作。我得到一个
无法读取未定义的属性2
,这意味着
setTimeout
函数和索引存在一些问题。编辑:Nvm。在上面代码中的这个示例()的帮助下,我们找到了更新是一个数组。您试图在数组上调用addPoint方法,您需要在该数组内的值上调用它<代码>更新[i].addPoint(myjson.list[i].Printvalue)
在上面的更新代码中是一个数组。您试图在数组上调用addPoint方法,您需要在该数组内的值上调用它<代码>更新[i].addPoint(myjson.list[i].Printvalue)