javascript覆盖我的数据

时间:2016-12-13 07:20:25

标签: javascript

我正在尝试编写一个简短的脚本来获取一些数据。我的想法是,而不是编写大量的JavaScript文件,我总是需要对链接中的ID进行硬编码,我认为必须可以在链接中插入变量。现在我有问题我只看到我的var的最后一个值,因为看起来var将被覆盖所有时间,而不是简单地将ID添加到输出。我希望你能帮助我。

以下是代码:

myConnector.getData = function(table, doneCallback) {
  var date = new Date();
  edate = date.toISOString().slice(0,10) + "-23-59-59";

  var ids = ["3775", "6697"]
  for ( i = 1; i < ids.length; i++)
  var id_temp  = ids[i];
  {

    $.getJSON("https://****/api/historicdata.json?id="+id_temp+"&avg=0&sdate=2016-12-12-00-00-00&edate="+edate+"&username=***&passhash=****", function(resp) {

      var feat = resp.histdata,
      tableData = []; 

      // Iterate over the JSON object
      //String id = UUID.randomUUID().toString();  
      for (var j = 0, len = feat.length; j < len; j++) {
        tableData.push({
          //"no"     : j,
          "ids" : id_temp,
          "datetime": feat[j].datetime,
          "value": feat[j].value,
          "value_raw": feat[j].value_raw,
          "coverage": feat[j].coverage,
          "coverage_raw": feat[j].coverage_raw


        });
      }

      table.appendRows(tableData);

    });

  };
  doneCallback(); 
};

2 个答案:

答案 0 :(得分:2)

问题是id_temp只会设置最后一个值,因为{位置错误。

此:

 var ids = ["3775", "6697"]
 for ( i = 1; i < ids.length; i++)
     var id_temp  = ids[i];

 {

应该是:

var ids = ["3775", "6697"]
for ( i = 1; i < ids.length; i++)
{
     var id_temp  = ids[i];
     //... rest of loop ...

答案 1 :(得分:1)

问题是你的整个代码不在for循环中,你的for循环只有一行

使用

 var ids = ["3775", "6697"]
 for ( i = 1; i < ids.length; i++)
 {
   var id_temp  = ids[i];
    $.getJSON("https://****/api/historicdata.json?id="+id_temp+"&avg=0&sdate=2016-12-12-00-00-00&edate="+edate+"&username=***&passhash=****", function(resp) {