сохранение координат в массиве в javascript

Я хочу сохранить координаты в массив в javascript, Я новичок в javascript и не знаю, как это сделать.

любая помощь будет оценили.

4 ответов


существует несколько способов хранения координат 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;
} 

Ну, допустим, мы сделаем это просто, вы хотите хранить координаты, поэтому у нас есть 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));

это в основном


эти ответы не используются,если вы пытаетесь сохранить сетку/матрицу, к которой вы хотели получить доступ к точке данных по значениям 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 = новый массив ();

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

вы можете получить к ним доступ с помощью

arr[0].x (дает координату x)

и

arr[0].y (дает координату y).

надеюсь, что это помогает.