如何在javascript中向数组添加数组?

时间:2014-02-25 13:49:17

标签: javascript arrays google-maps

我将coordinates作为

25.774252, -80.190262

18.466465, -66.118292

32.321384, -64.75737

我必须维护一个类似

的数组

Coordinates[] = [(25.774252, -80.190262),(18.466465, -66.118292),(32.321384, -64.75737)]

这怎么可能?或者还有其他方法可以逐点获得纬度和经度吗?

我试过了,

for(var i = 0 ; i < polygonBounds.length ; i++)
{
     coordinates.push(polygonBounds.getAt(i).lat(), polygonBounds.getAt(i).lng()); 
}

但它会像,

0
    31.796473239688435

1
    -106.51227951049805

2
    31.797786324219413

3
    -106.49425506591797

4
    31.78392504670159

5
    -106.47829055786133

6
    31.757509914027327

7
    -106.48704528808594

8
    31.776191009772532

9
    -106.52069091796875

10
    31.790782991145434

11
    -106.5208625793457

所以现在我有了这个数组,我需要通过循环相同的数组来获取每个纬度和经度。怎么可能?

5 个答案:

答案 0 :(得分:1)

你试过了吗?

for(var i = 0 ; i < polygonBounds.length ; i++)
{
     coordinates.push([polygonBounds.getAt(i).lat(), polygonBounds.getAt(i).lng()]); 
}

(注意'['和']')?

答案 1 :(得分:1)

如果你想推对,推一个数组:

for (var i = 0; i < polygonBounds.length; i++) {
     coordinates.push([polygonBounds.getAt(i).lat(), polygonBounds.getAt(i).lng()]); 
}

这将是:

的缩写
for (var i = 0; i < polygonBounds.length; i++) {
     var coords = [];
     coords.push(polygonBounds.getAt(i).lat());
     coords.push(polygonBounds.getAt(i).lng());
     coordinates.push(coords); 
}

答案 2 :(得分:0)

(25.774252, -80.190262)不是有效值,因此无法存储在数组中。

您必须使用数组或对象而不是它。

[25.774252, -80.190262]{lat: 25.774252, lng: -80.190262}

答案 3 :(得分:0)

尝试

for(var i = 0 ; i < polygonBounds.length ; i++)
{
    var obj = {};
    obj.x = polygonBounds.getAt(i).lat();
    obj.y = polygonBounds.getAt(i).lng();
    coordinates.push(obj); 
}

并获取var some = coordinates[0].x;

答案 4 :(得分:0)

您需要的是一个对象数组,其中每个对象都存储两个属性

var coordinates = [];
for(var i=0; i<polybounds.length; i+=2) {
    coordinates.push({ lat: polybounds[i], long: polybounds[i+1] });
}

现在你可以在坐标上做任何事情,比如

for(var i=0; i<coordinates.length; i+=2) {
    var long = coordinates[i].long;
    var lat = coordinates[i].lat;
    console.log(lat + ',' + long);
}