在javascript中将坐标存储在数组中

问题描述 投票:0回答:5

我想将坐标存储到JavaScript中的数组中, 我是 javascript 新手,不知道该怎么做。

如有任何帮助,我们将不胜感激。

javascript arrays google-maps
5个回答
27
投票

有多种方法可以存储 x,y 坐标:

选项 1(数组中的所有其他索引):

function storeCoordinate(x, y, array) {
    array.push(x);
    array.push(y);
}

var coords = [];
storeCoordinate(3, 5, coords);
storeCoordinate(19, 1000, coords);
storeCoordinate(-300, 4578, coords);

coords[0] == 3   // x value (even indexes)
coords[1] == 5   // y value (odd indexes)

// to loop through coordinate values
for (var i = 0; i < coords.length; i+=2) {
    var x = coords[i];
    var y = coords[i+1];
} 

选项 2(数组中的简单对象):

function storeCoordinate(xVal, yVal, array) {
    array.push({x: xVal, y: yVal});
}

var coords = [];
storeCoordinate(3, 5, coords);
storeCoordinate(19, 1000, coords);
storeCoordinate(-300, 4578, coords);

coords[0].x == 3   // x value
coords[0].y == 5   // y value

// to loop through coordinate values
for (var i = 0; i < coords.length; i++) {
    var x = coords[i].x;
    var y = coords[i].y;
} 

5
投票

好吧,假设我们让它变得简单,你想存储坐标,所以我们有 x 和 y:

function coordinate(x, y) {
    this.x = x;
    this.y = y;
}

这就是在 javascript 中创建对象的方式,它们的作用类似于函数。使用此功能您可以创建坐标。然后你需要做的就是创建一个数组:

var arr = new Array();
arr.push(new coordinate(10, 0));
arr.push(new coordinate(0, 11));

基本上就是这样


2
投票

push 方法可以完成这项工作:

var arr = new Array();

arr.push({ x : x_坐标, y : y_坐标 });

然后您可以使用

访问它们

arr[0].x
(给出 x 坐标)

arr[0].y
(给出 y 坐标)。

希望有帮助。


1
投票

如果您尝试存储稍后想要通过 x,y 值访问数据点的网格/矩阵,则这些答案不可用。

var coords = [];

for(y=0; y < rows; y++){
   for(x=0;x<cols; x++){
      if(typeof coords[x] == 'undefined']){
         coords[x] = [];
      }

      coords[x][y] = someValue;
   }
}

//accessible via coords[x][y] later

0
投票

我看到了一种使用 Set 来存储坐标的方法。通过使用 Set,您可以存储有时会派上用场的独特坐标。

let coords = new Set();
coords.add(x + "," + y)
© www.soinside.com 2019 - 2024. All rights reserved.