Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript多数组push()差异_Javascript_Dygraphs - Fatal编程技术网

Javascript多数组push()差异

Javascript多数组push()差异,javascript,dygraphs,Javascript,Dygraphs,我推送数据有问题。我想为绘图(动态图)准备数据(时间、温度、湿度)。但当我用这一代码填充变量数据时(见下文),我并没有得到图形 for (var i = 0; i < time.length; i++){ var t = new Date (time[i]); data.push(t); for(var n = 0; n < 2; n++){ data.push([data_graph[n][i]]); } } for (var i = 0; i <

我推送数据有问题。我想为绘图(动态图)准备数据(时间、温度、湿度)。但当我用这一代码填充变量数据时(见下文),我并没有得到图形

for (var i = 0; i < time.length; i++){
  var t = new Date (time[i]);
  data.push(t);
  for(var n = 0; n < 2; n++){
    data.push([data_graph[n][i]]);
  }
}
for (var i = 0; i < time.length; i++){
  var t = new Date (time[i]);
  data.push([t,data_graph[0][i],data_graph[1][i]]);
}
for(变量i=0;i
但当我将其中一个留给cycle并手动编写数组的nums(见下文)时,它就工作了,我得到了这个图

for (var i = 0; i < time.length; i++){
  var t = new Date (time[i]);
  data.push(t);
  for(var n = 0; n < 2; n++){
    data.push([data_graph[n][i]]);
  }
}
for (var i = 0; i < time.length; i++){
  var t = new Date (time[i]);
  data.push([t,data_graph[0][i],data_graph[1][i]]);
}
for(变量i=0;i
我有了使用临时变量的想法,但也没有成功

 for (var i = 0; i < time.length; i++){
   var data_temporary = [];
   var t = new Date (time[i]);
   for(var n = 0; n < 2; n++){
     data_temporary.push([data_graph[n][i]]);
   }
   data.push([t,data_temporary]);
 }
for(变量i=0;i
所以我的问题是…哪里会有问题? 提前感谢您的回答。

第二个(工作)版本将根据需要创建一个二维数组,第一个维度中包含
时间.长度
元素,每个元素包含三个
[t,x,y]

在第一个版本中,您正在创建一个一维数组
[t0、[x0]、[y0]、t1、[x1]、[y1]、…]


您的第三个版本不起作用,因为当您在第一个维度中正确创建
time.length
元素时,元素本身是
[t,[[x],[y]]
,而不是
[t,x,y]
是的,您的三个代码片段生成三种不同的
数据结构:

  • [t[datagraph…],[datagraph…],t[datagraph…],[datagraph…],…]
  • 顺便说一句,你经常推单元素数组

    因此,如果您希望由循环生成struc#2,请使用

    for (var i=0; i<time.length; i++) {
        var t = new Date (time[i]);
        var temp = [t]; // or temp=[]; temp.push(t);
        for (var j=0; j<data_graph.length; j++) // or j<2 if that's certain
            temp.push(data_graph[j][i]);
        data.push(temp);
    }
    

    for(var i=0;ipush()的每个调用)在
    数据
    数组中创建一个新元素。因此,在第一个示例中,在外部
    for
    循环的每次迭代中传递3个对象,在第三个示例中,传递一个由时间和两个值数组组成的对象。但是动态图脚本显然希望对象由三个元素组成,所以您的第二个示例有效。

    感谢Bergi的建议。问题解决了!现在javascript push()更清晰了。