const gameBoardWidth = 28; const gameBoardHeight = 16; const gameBoardCoordinates = [...Array(gameBoardWidth)].map((e) => Array(gameBoardHeight).fill(0), ); const createCoordinates = () => { for (x = 0; x < gameBoardWidth * 50; x += 50) { for (y = 0; y < gameBoardWidth * 50; y += 50) { gameBoardCoordinates[x][y].x = x; gameBoardCoordinates[x][y].y = y; } } };al llamar a esta función, los elementos gameBoardCoordinates siempre tienen y:15.
Aquí hay una versión que inicializará sus coordenadas (reduje el tamaño del tablero para hacerlo más manejable):
const gameBoardWidth = 8; const gameBoardHeight = 6; const gameBoardCoordinates = [...Array(gameBoardHeight)].map((e) => Array(gameBoardWidth).fill(0), ); const createCoordinates = () => { for (y = 0; y < gameBoardHeight; y++) { for (x = 0; x < gameBoardWidth; x++) { gameBoardCoordinates[y][x]={x:x*50,y:y*50}; } } }; createCoordinates(); console.log(gameBoardCoordinates)