javascript - 似乎无法在 javascript 中添加两个整数?

标签 javascript jquery arrays indexing integer

我正在使用 HTML5 canvas 构建 John Conways 生活游戏。 它有一个 gameOfLife 对象,其中包含一个包含所有细胞及其状态(死/活)的数组。 这是构建单元格的代码:

function cell(x,y){
    this.x = x;
    this.y = y;
    this.isAlive = false;
}

我正在探索检查细胞周围细胞状态的方法。据我了解,一种方法是遍历数组并找到一个坐标与当前选中的单元格周围匹配的单元格。

我正在考虑换一种方式。通过从正在评估的单元格的索引中添加和减去 Y(和 X)轴上的单元格数量(+1 和 -1 的小变化),您应该能够得出任何顶部的索引左、左、左下、右上、右、右下单元格。

虽然我无法测试这个想法,因为它不能让我获得所需的索引:

所以,在我的更新循环中:

//I know that there is a cell at the index of exampleIndex + cellsY
exampleIndex = 200;

game.getLivingNeighbours(exampleIndex);


function getLivingNeighbours(i){

    console.log(i) //Logs an integer
    console.log(grid.cellsY) //Logs an integer
    console.log(game.cells[i + grid.cellsY]); //Undefined?!

}

最佳答案

可能有两个原因:

  1. 在 JavaScript 中,变量是松散类型的,这就是为什么最好先解析 int 算术运算。

    尝试:

    console.log(game.cells[parseInt(i,10) + parseInt(grid.cellsY,10)]);
    
  2. 你正在尝试访问一个数组,你需要检查是否 parseInt(i,10) + parseInt(grid.cellsY,10) 索引存在于你的 数组与否。

关于javascript - 似乎无法在 javascript 中添加两个整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16175125/

相关文章:

c++ - 使用交换方法在程序集中反转外部数组 - x86 MASM

javascript - 有没有办法确定浏览器窗口是弹出窗口,还是只是使用目标 ="_blank"的新窗口?

javascript - 从表行中的 jquery 模板获取下拉选择的值

javascript - 动态创建多个组

javascript - 将数据保存到本地存储

java - [JAVA]数组迭代器的arraylist

javascript - 使用 JavaScript 中的临时凭证上传到 AWS S3

javascript - 如何获取具有特定 Id 的 div 中的下一个元素

Javascript/jQuery - 解析返回 'data' 作为 HTML 以供进一步选择?

javascript - 如何在 Angular JS 的选择列表中选择默认下拉选项