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()更清晰了。