我最近开始使用 JavaScript 编程语言。不,这不是我的母语,但这是我第一次使用它。我正在尝试使用 HTML5 canvas 功能创建一个国际象棋程序。我正在使用 for 循环创建一个包含所有棋子位置的数组。我遇到了一个问题;它将所有坐标存储为未定义。下面是存储这些值的函数的代码。
var board = [];
function createBoard() {
var integer = 0;
for (var i = 0; i < 8; i++) {
for (var j = 0; j < 8; j++) {
board[integer] = new Position(i, j);
integer++;
}
}
}
function replacePosition(position1, position2) {
var i = board.indexOf(position1);
board[i] = position2;
}
function getPosition(x, y) {
for (var position in board) {
console.log("(" + position.x + "," + position.y + ")");
if (position.x == x && position.y == y) {
return position;
}
}
return null;
如果需要,这里是 Position 类。
class Position {
constructor(x, y) {
this.x = x;
this.y = y;
this.piece = null;
}
}
我运行 createBoard(),然后尝试使用 getPosition()。我说我的代码不适用于空值。如果我查看控制台,它会一直记录“(undefined,undefined)”。我做了一些研究,但我唯一能找到的是异步的。我试图对此进行调查,但我无法弄清楚如何解决它。有谁知道如何解决这个问题?
最佳答案
我会做
function getPosition(x, y) {
return board[x*8 + y];
}
关于JavaScript - 从 for 循环存储的所有内容都存储为未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42182214/