2012-03-13 2 views
0

매우 긴 자바 스크립트 코드를 하나의 "for 루프"로 변환하려고합니다 : 점 A에서 점 B까지 무엇이 잘못 되었습니까? 이것은 Google지도 마커, 각 마커 다른 내용과 위치를 사용하여,하지만 그들은 같은 아이콘, 그림자 ... A 지점 아래 공유 :하나에 긴 자바 스크립트를 결합

var mappro1 = new google.maps.Marker({ 
        position: map1, 
        map: map, 
        icon: companyImage, 
        shadow: companyShadow, 
        title:"c", 
        zIndex: 4 
      }); 
      var mappro2 = new google.maps.Marker({ 
        position: map2, 
        map: map, 
        icon: companyImage, 
        shadow: companyShadow, 
        title:"c", 
        zIndex: 4 
      }); 
      var mappro3 = new google.maps.Marker({ 
        position: map3, 
        map: map, 
        icon: companyImage, 
        shadow: companyShadow, 
        title:"c", 
        zIndex: 4 
      }); 
      var mappro4 = new google.maps.Marker({ 
        position: map4, 
        map: map, 
        icon: companyImage, 
        shadow: companyShadow, 
        title:"c", 
        zIndex: 4 
      }); 
      var mappro5 = new google.maps.Marker({ 
        position: map5, 
        map: map, 
        icon: companyImage, 
        shadow: companyShadow, 
        title:"c", 
        zIndex: 4 
      }); 
      var mappro6 = new google.maps.Marker({ 
        position: map6, 
        map: map, 
        icon: companyImage, 
        shadow: companyShadow, 
        title:"c", 
        zIndex: 4 
      }); 
      var mappro7 = new google.maps.Marker({ 
        position: map7, 
        map: map, 
        icon: companyImage, 
        shadow: companyShadow, 
        title:"c", 
        zIndex: 4 
      }); 
      var mappro8 = new google.maps.Marker({ 
        position: map8, 
        map: map, 
        icon: companyImage, 
        shadow: companyShadow, 
        title:"c", 
        zIndex: 4 
      }); 
      var mappro9 = new google.maps.Marker({ 
        position: map9, 
        map: map, 
        icon: companyImage, 
        shadow: companyShadow, 
        title:"c", 
        zIndex: 4 
      }); 

점 B 아래 : 루프의 내 변종 코드에 따라입니다

  for ($i=1; $i <10; $i++){ 

       var $mappros = "mappro" + $i; 
       var $mappos = "map" + $i; 

       var mappros = new google.maps.Marker({ 
        position: $mappos, 
        map: map, 
        icon: companyImage, 
        shadow: companyShadow, 
        title:"$i", 
        zIndex: $i 
       }); 
      }; 
+0

정말 $ mappros 변수가 필요합니까? –

+1

당신은 문제가 무엇인지를 쓰지 않았습니다 ...'map {X}'의 값은 무엇입니까? 그리고'title'과'zIndex'가 바뀌는 것과 같이 같지 않은 것들이 있습니다 ** B **하지만 변경되지 않습니다 ** A ** – gdoron

+0

당신은'for 루프 '에서'mappros'를 다시 선언하고 있습니다. 'for 루프 '밖에서 선언 된 배열에 새로운 Marker 객체를 추가해보십시오. – Stefan

답변

1

을 A :

var mappros = []; 
for (var $i = 1; $i < 10; $i++){ 
    var mappro = new google.maps.Marker({ 
     position: "map" + $i, 
     map: map, 
     icon: companyImage, 
     shadow: companyShadow, 
     title: "c", 
     zIndex: 4 
    }); 
    mappros.push(mappro); 
}; 

그러면 인덱스를 통해 액세스 할 수있는 mappro 배열을 얻을 수 있습니다. 각 mappro에 대해 별도의 이름이 필요하다면 제목 줄을 다음으로 바꾸십시오.

title: $i, 
관련 문제