2011-08-26 121 views
0

下面的代碼假設需要一個起始位置並創建一個包含它的其他位置的數組,它與它們的距離。我試圖調試,但是崩潰發生在代碼執行的最初階段(在最新的chrome和firefox上)。這段代碼爲什麼崩潰我的瀏覽器?

function makeRoads(){ 
    try { 
     if(arguments.length%2 == 0){throw "you need to specify bla!";} 
     else { 
      var origin = arguments[0] 
      for (var i = 1; i < arguments.length; i+2) { 
       var destenation = arguments[i]; 
       var distance = arguments[i+1]; 
       makeRoad(origin, destenation, distance); 
      } 
     } 
    } 
    catch (error){ 
     console.log(error); 
    } 
    finally{ 
     console.log("fianlly!!"); 
    } 
} 

function makeRoad(origin, destenation, distance) { 
    function addRoad(origin, destenation) { 
     if (!(origin in roads)){roads[origin] = [];} 
     roads[origin].push({to: destenation, distance: distance}); 
    } 

    addRoad(origin, destenation); 
    addRoad(destenation, origin); 
} 

我把它用makeRoads("a"/*the origin*/,"b",3/*first destination and distance*/,"c",4)

+1

適合我。你怎麼叫makeRoads? – Boldewyn

+0

你的意思是什麼樣的撞車?這發生了什麼? – BigBadDom

+0

小調:「destenation」應該是「目標」 – scunliffe

回答

6

你在你的for循環有一個無限循環!

for (var i = 1; i < arguments.length; i+2) 

i+2永不增加i。您需要做i+=2

+0

該死的。打敗我吧。 +1 – Jamiec

相關問題