2012-12-07 4 views
3

구문 오류가 발생합니다. 예기치 않은 22 번째 줄의 식별자입니다.이 코드를 여러 번 반복해서 읽었으므로 나에게 잘못된 것이 무엇인지 파악할 수 없습니다. 한 노드에서 다른 노드로가는 최단 경로를 결정하는 코드입니다.Uncaught SyntaxError : 예기치 않은 식별자

"use strict" 
function findpath(G,si,di){ 
    //G is an array of nodes (with id, lat, lon) 
    var cvi = si; 
    var P=[si]; 
    var C=[0,P]; 
    var M=[C]; 
    var O=[]; 
    var ctr=0; 
    var done = false; 
    var reached = false; 
    var best = undefined; 


    while(!done){ 
     ctr++; 
     if(ctr > 100){ 
      alert("Sorry, can't find the destination."); 
      return P; 
     } 

     for (int i=0;i<M.length;++i){ 
      var last = M[i[1]].length; 
      var v = M[i[1[last]]]; 

      //select a random neighbor... 
      if(v.N.length === 0){ 
       alert("Wat?"); 
       return []; 
      } 
      else if(v.N.length === 1){ 
       break; 
      } 
      else if(v === di){ 
       break; 
      } 
      else { 
       for (int j=0;j<v.N.length;++j){ 
        var temp = M[i]; 
        O.push(temp[1].push(v.N[j])); 
        var dist = distance(v.lat,v.lon,v.N[j].lat,v.N[j].lon); 
        var temp2 = O.length-1; 
        O[temp2[0]]+=dist; 
        if (v.N[j]===di){ 
         reached = true; 
         if (best === undefined){ 
          console.log("ASSIGN"); 
          best = O[temp2]; 
         } 
         else { 
          if (O[temp2[0]]<best[0]) { 
           best = O[temp2]; 
          } 
         } 
        } 
       } 
      } 
     } 
     M = O; 
     var any = false; 
     for (int i=0;i<M.length;++i) { 
      if (M[i[0]]<best[0]) { 
       any = true; 
      } 
     } 
     if (!any) { 
      done = true; 
     } 
    } 

    //return the path 
    return best[1]; 
} 

function distance(x1,y1,x2,y2){ 
    return Math.sqrt(Math.pow((x2-x1),2)+Math.pow((y2-y1),2)); 
} 

답변

9

이 :

for (int i=0;i<M.length;++i){ 

int가 없어야합니다. var이어야합니다.

for (var i=0;i<M.length;++i){ 
+0

하하하하아 내 세상에, 내 바보 같은 기분. 빠른 응답을 보내 주셔서 감사합니다. 나는 이제 부끄러움을 당할 것이다. – iwhitt567

+0

@ user1886781 : 환영합니다. ;) –

3

귀하는 for (int i=0;i<M.length;++i){입니다.

int은 식별자이지만 JavaScript의 일부는 아닙니다.

아마도 var을 의미했을 것입니다.

관련 문제