Javascript动态生成变量 'this'

标签 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 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/

相关文章:

javascript - plotbands 以两个 Pane 之一为目标

javascript - 如何使用范围和导航器功能在 Highcharts 中创建列范围图表?

javascript - 使用highchart在柱形图中隐藏列后如何填充空间?

javascript - 在 Ajax 加载的外部 html 中的脚本后调用事件

javascript - jQuery 显示/隐藏不起作用

javascript - 没有使用 jasmine.js 和 sinon.js 调用backbone.js 点击事件 spy

javascript将数组转换为对象以通过ajax发送数据

JavaScript图像碰撞

javascript - 如何将 x 轴日期时间格式更改为时间和日期的混合格式?

javascript - 显示从下拉列表中的月份选择中选择的图表列表