簡體   English   中英

將坐標存儲在 javascript 中的數組中

[英]storing coordinates in array in javascript

我想將坐標存儲到 javascript 中的數組中,我是 javascript 的新手,不知道該怎么做。

任何幫助,將不勝感激。

有多種存儲 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(陣列中的簡單 object):

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;
} 

好吧,假設我們讓它變得簡單,你想存儲坐標,所以我們有 x 和 y:

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

這就是您在 javascript 中創建對象的方式,它們的作用類似於函數。 有了這個 function,您可以創建您的坐標。 然后你需要做的就是創建一個數組:

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

基本上就是這樣

如果您嘗試存儲稍后希望通過 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

push 方法可以完成這項工作:

var arr = new Array();

arr.push({ x: x_coordinate, y: y_coordinate });

然后,您可以使用

arr[0].x (給出 x 坐標)

arr[0].y (給出 y 坐標)。

希望能幫助到你。

我看到了一種使用 Set 存儲坐標的方法。 通過使用 Set,您可以存儲唯一的坐標,這些坐標有時會派上用場。

let coords = new Set();
coords.add(x + "," + y)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM