2011-11-16 167 views
1

我在Google Maps上工作,在创建对象数组时遇到问题,并且有一个变量持有它(对象数组)以供以后处理。嵌套在数组中的Javascript对象

var lat=new Array("12.996188333333","12.988683333333","12.99156","13.092916666667"); 
var lng=new Array("77.58392","77.57781","78.579193333333","77.594161666667"); 
var latlng = [  new google.maps.LatLng(lat[0], lng[0]) ,  
     new google.maps.LatLng(lat[1], lng[1]),  
     new google.maps.LatLng(lat[2], lng[2]),  
     new google.maps.LatLng(lat[3],lng[3])]; 

所以,经纬度持有array.This对象的(静态),其中阵列lat和阵列LNG声明的情况下。什么,如果它的动态,说我有计数,但是如何创建一个动态数组的物体。我试图循环它,但没有results.Please帮助!

for(var i=0;i<3;i++) 
{ 
var latlng=new Array(); 
latlng[i]= new google.maps.LatLng(lat[i],lng[i]); 
} 

的console.log(经纬度)给出我: [未定义,未定义未定义,{13.092916666667,77.594161666667}]

回答

3
var lat = ["12.996188333333","12.988683333333","12.99156","13.092916666667"]; 
var lng = ["77.58392","77.57781","78.579193333333","77.594161666667"]; 

var latlng = []; 

for (var i = 0; i < lat.length; i++) 
    latlng[i] = new google.maps.LatLng(lat[i], lng[i]); 

(假设lat和LNG具有相同的长度)。

0

var latlng=new Array();for循环。此刻,您每次循环都清除阵列。

0

你可以这样说:

var latlng = []; 
for (var i=0; i<3; i++) 
{ 
    latlng.push(new google.maps.LatLng(lat[i],lng[i])); 
} 

你需要移动数组的声明外循环,所以它初始化一次,那么你每次通过添加项目到数组的末尾循环。

你也不必硬编码的长度可以:

var latlng = []; 
for (var i = 0; i < lat.length; i++) 
{ 
    latlng.push(new google.maps.LatLng(lat[i],lng[i])); 
}