Javascript 在google map代码中的for循环条件中传递函数n次每次等待并传递函数

Javascript 在google map代码中的for循环条件中传递函数n次每次等待并传递函数,javascript,Javascript,这是创建一个GoogleMap,在GoogleMap中一次性传递n个地址,这是不可能的,这就是我向每个迭代函数传递函数集间隔(2个部分)的方式 var directionsDisplay; var directionsService = new google.maps.DirectionsService(); var n; var j=1; var array_list= new Array(n); var array_storename=new Array(n); function Initi

这是创建一个GoogleMap,在GoogleMap中一次性传递n个地址,这是不可能的,这就是我向每个迭代函数传递函数集间隔(2个部分)的方式

var directionsDisplay;
var directionsService = new google.maps.DirectionsService();
var n;
var j=1;
var array_list= new Array(n);
var array_storename=new Array(n);
function InitializeMap() 
{

    directionsDisplay = new google.maps.DirectionsRenderer();
    var latlng = new google.maps.LatLng(-34.397, 150.644);
    var myOptions =
    {
        zoom: 11,
        center: latlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById("map"), myOptions);


    directionsDisplay.setMap(map);
            directionsDisplay.setPanel(document.getElementById('directionpanel'));

    var control = document.getElementById('control');
    control.style.display = 'block';

document.getElementById('sorttable').style.display="none"

}
    function calcRoute(dist,varab) 
    {
    n=document.getElementById('Countnumbers').value;
    var start = document.getElementById('startvalue').value;
    var end = document.getElementById(dist).innerHTML;
    // end=end.replace(/[!@#$%&^*()-+=|\/:;><~]/gi," ");

    var request = {
        origin: start,
        destination: end,
        travelMode: google.maps.DirectionsTravelMode.DRIVING
    };

    directionsService.route(request, function (response, status) 
    {


        if (status == google.maps.DirectionsStatus.OK)
         {

         document.getElementById('sorttable').style.display="block";
         document.getElementById("total").style.visibility="hidden";
            directionsDisplay.setDirections(response);
            var route = response.routes[0];
             for (var i = 0; i < route.legs.length; i++)
             {

                 var a=route.legs[i].distance.text;
                 var b=route.legs[i].duration.text;
                 var bc=a+",About :"+b;
                var lblid="Labe"+varab;
                document.getElementById(lblid).innerHTML=bc;
                var store="lblstore"+varab;
                document.getElementById(store).title=end;
                 var len=10.0;
                 var dd=route.legs[i].distance.value/1000;
                 array_list[varab]=dd;
                 array_list.sort(function(a,b){return a-b});
              }

           }


       });

    }


function Button1_onclick() 
{
    for(j=1;j<=n;j++)
{
    document.getElementById('sorttable').style.display="block";
    n=document.getElementById('Countnumbers').value;
    var ss="lblstorename"+j;
    var ss1 =document.getElementById(ss).innerHTML;
//this labels are store my addresss
    calcRoute(ss,j);

 }   
}   
var方向显示;
var directionsService=new google.maps.directionsService();
var n;
var j=1;
变量数组\列表=新数组(n);
var array\u storename=新数组(n);
函数初始化映射()
{
directionsDisplay=new google.maps.DirectionsRenderer();
var latlng=新的google.maps.latlng(-34.397150.644);
变异性肌肽=
{
缩放:11,
中心:拉特林,
mapTypeId:google.maps.mapTypeId.ROADMAP
};
var map=new google.maps.map(document.getElementById(“map”),myOptions);
方向显示.setMap(地图);
DirectionDisplay.setPanel(document.getElementById('directionpanel');
var control=document.getElementById('control');
control.style.display='block';
document.getElementById('sorttable').style.display=“无”
}
功能计算器(varab区)
{
n=document.getElementById('countNumber')。值;
var start=document.getElementById('startvalue').value;
var end=document.getElementById(dist.innerHTML);

//end=end.replace(/[!@$%&^*()-+=\/:;>为了在每次迭代之间增加2秒的延迟,您需要反复调用ur
calcRoute(…)
并将for循环代码移到
calcRoute
方法中

您的代码应该如下所示-

function Button1_onclick() {      
  document.getElementById('sorttable').style.display="block";
  n=document.getElementById('Countnumbers').value;
  var ss="lblstorename"+n;//use n insteadof j
  var ss1 =document.getElementById(ss).innerHTML;            
  calcRoute(ss,j);//only your first call is inside this method. rest all will be recurrsive
}

// making your calcRoute recurrsive
function calcRoute(ss, j){
  //your code here
  if(--j>0){           
     var ss="lblstorename"+j;             
     var ss1 =document.getElementById(ss).innerHTML;//not sure why are u using ss1
     setTimeout(function(){calcRoute(ss, j)}, 2000);//here you set your time delay
  }
}

太多了…………点…………你能用普通英语而不是代码写吗?明确描述你的问题,陈述你的问题。用代码来说明你尝试了什么,并帮助人们理解你的问题。请看我在上面写了完整的代码。不幸的是,我在反馈弹出窗口中按了“否”,请原谅,您的编码是正确的,请检查并给出解决方案