2015-07-10 83 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