2011-08-26 124 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

相关问题