Sara
Sara

Reputation: 595

storing coordinates in array in javascript

I want to store coordinates into an array in javascript, I am new to javascript and do not have an idea how to do it.

Any help would be appreciated.

Upvotes: 17

Views: 48233

Answers (6)

Lenny Woods
Lenny Woods

Reputation: 361

//creates a new point coordinate(x,y) - in this case its coordinate (col,row)
function coord(myColumn, myRow) {
    return { col: myColumn, row: myRow}
}

 // creates an array of coord
var myCoords = [
    coord(0, 0), 
    coord(0, -2), coord(+1, -1),
    coord(+1, +1), coord(0, +2),
    coord(-1, +1), coord(-1, -1),
]

// access by - add coords and return a new one
function add(coordStart, coordEnd) {
return coord(coordStart.col + coordEnd.col, coordStart.row + coordEnd.row)
}

// call function
let myNewCoord = add(myCoords[3], myCoords[0])

Upvotes: 0

Steven
Steven

Reputation: 1

I saw a way to store coordinates using a Set. By using a Set you can store unique coordinates which can come in handy at times.

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

Upvotes: 0

Wes
Wes

Reputation: 539

These answers are not usable if you're trying to store a grid/matrix that you wanted to access data point by x,y values later.

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

Upvotes: 1

Swapnil
Swapnil

Reputation: 2603

The push method would do the job:

var arr = new Array();

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

You can then access them by using

arr[0].x (gives the x coordinate)

and

arr[0].y (gives the y coordinate).

Hope it helps.

Upvotes: 2

jfriend00
jfriend00

Reputation: 707228

There are a number of ways to store x,y coordinates:

Option 1 (every other index in an array):

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

Option 2 (simple object in an array):

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

Upvotes: 27

Dorpsidioot
Dorpsidioot

Reputation: 474

Well, let's say we make it simple, you want to store coördinates, so we have x and y:

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

This is how you create Objects in javascript, they act like functions. With this function you can create your coordinates. Then all you need to do is create an array:

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

That's it basically

Upvotes: 5

Related Questions