Javascript用'this'动态生成变量

时间:2017-07-10 20:13:28

标签: 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);
    }, 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不是函数

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

1 个答案:

答案 0 :(得分:2)

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

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

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

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

请注意[i]之后的update