在谷歌地图上工作时,我在创建一个对象数组时遇到问题,一个变量保存它(对象数组)以供以后处理。
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}]
答案 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]));
}