嵌套在数组中的Javascript对象

时间:2011-11-16 08:19:40

标签: javascript google-maps object

在谷歌地图上工作时,我在创建一个对象数组时遇到问题,一个变量保存它(对象数组)以供以后处理。

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] )];

所以,latlng在数组中保存对象。这是一个声明数组lat和数组lng(静态)的情况。如果它是动态的,比如说我有计数,但是我如何创建一个动态的对象数组。我试图循环它,但没有结果。请帮助!!!

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

console.log(latlng)给了我:        [未定义,未定义未定义,{13.092916666667,77.594161666667}]

3 个答案:

答案 0 :(得分: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具有相同的长度)。

答案 1 :(得分:0)

var latlng=new Array(); 放在<{1}}循环之外。此时,每次循环时都要清除阵列。

答案 2 :(得分: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]));
}