用于循环嵌套迭代的Javascript
我试图遍历一个大的值数组,并为每秒钟收集一个值的平均值。我无法使这段代码正常工作,就我所知,问题在于嵌套的while循环。我是否犯了一个范围错误,阻止我迭代for循环索引 数据是以毫秒为单位的时间戳和辐射计数。用于循环嵌套迭代的Javascript,javascript,arrays,loops,Javascript,Arrays,Loops,我试图遍历一个大的值数组,并为每秒钟收集一个值的平均值。我无法使这段代码正常工作,就我所知,问题在于嵌套的while循环。我是否犯了一个范围错误,阻止我迭代for循环索引 数据是以毫秒为单位的时间戳和辐射计数。 a.data[i][0]是时间戳,a.data[i][26]是计数 for (i = 0; i < a.data.length; i++){ // counts is the count of radiation over the last timeframe va
a.data[i][0]
是时间戳,a.data[i][26]
是计数
for (i = 0; i < a.data.length; i++){
// counts is the count of radiation over the last timeframe
var counts = 0;
// t1 is the start time
// t2 is the current iteration time
var t1, t2 = a.data[i][0];
while ((t2 - t1) < 1000){
t2 = a.data[i][0];
counts += a.data[i][26];
i++;
}
// Geiger Data is an array of { x:(time), y:(value)} datapoints.
GeigerData.push({x: (t1/1000), y: counts});
}
for(i=0;i
您的问题源于以下几行:
var t1, t2 = a.data[i][0];
定义JS变量不是这样工作的,在代码中,t1
总是未定义的。你真正想要的是
var t1 = a.data[i][0];
var t2 = t1;
谢谢,这解决了问题。这也可以做到
var t1=t2=a.data[i][0]
@JonathanCrowe-从技术上讲,是的,你可以做到,但你绝对不想做到。您的代码与此相同:var t1=a.data[i][0]代码>t2=t1代码>这通过不使用var将t2置于全局范围内。请看这个提琴:非常有趣!谢谢你的演示