JavaScript - 从 for 循环存储的所有内容都存储为未定义

标签 javascript arrays for-loop undefined

我最近开始使用 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/

相关文章:

python - 如何从python中的整个3D数组中提取上限值

java - 这个循环有什么问题? - 安卓工作室

java - 为什么索引大于for循环条件会导致异常[Java]?

javascript - 如何让我的 HTML 表单日期输入仅允许使用 JavaScript、React 和 HTML 选择一周中的特定日期?

java - 使用 Java 如何确定输入到数组中的 5 个数字是否连续?

javascript - 调整大小时缩小/扩大子元素的大小

php 文件返回错误转换为 Android GET 请求的 JSON

for-loop - 初始化 Dart 中的列表列表

javascript - 覆盖导入的样式组件 CSS 属性

javascript - 在 Sencha Touch selectfield 中填充图标