2015-07-10 80 views
-1

在calcRoute函数中,我使用标记之间的距离填充'dis'数组,并将其传递给回调函数(参见下文)。 我应该得到一个有20个值的数组,但是当我显示它的时候,我得到了一些奇怪的东西。Javascript:push in array

for (var i = 0; i < f.legs.length; i++) { 
     routeSegment += 1; 
     summaryPanel.innerHTML += "<b>Route Segment: " + routeSegment + "</b><br />"; 

     summaryPanel.innerHTML += f.legs[i].distance.text + "<br /><br />"; 
     l += f.legs[i].distance.text 

     dis.push(l); 
     callback(dis); 

} 

function callback(result) { 
// code that depends on 'result' 

    alert(result); 

} 

我的代码在jsfiddle

+4

这并不奇怪,你在每次迭代中运行回调函数,我想你只想在for循环结束后调用它一次 – slash197

+0

为什么我会在值之间取得undefine? – Backhandx

+1

因为你没有给'l'赋值,所以它以'undefined'开头。 – fuyushimoya

回答

0

分配var l="";

变量必须NULL或任何值来分配。 null用于 表示未知值。

并考虑在迭代之外调用您的回调函数。

你的代码工作正常。退房here

+1

感谢您的回复! – Backhandx