我正在尝试制作一个简单的配色游戏,我想找到一种方法来选择相同颜色的方 block 组。
这是 fiddle我正在处理,如果您运行它,您会发现当我尝试将鼠标悬停在游戏区域边缘的元素上时出现问题,告诉我它正在尝试使用 undefined variable
如果你在下面查看,在 parse_quad_tree()
函数中你会看到我处理了 undefined variable 的情况,但是因为它停止了,这意味着我在某个地方错了......
谢谢你的时间
最佳答案
您的二维数组实际上是嵌套数组。您只需要检查可能越界的数组级别:
var n = !!grid[x][y-1]?grid[x][y-1]:false;
var s = !!grid[x][y+1]?grid[x][y+1]:false;
var e = !!grid[x-1]?grid[x-1][y]:false; // Instead of !!grid[x-1][y]
var w = !!grid[x+1]?grid[x+1][y]:false; // Instead of !!grid[x+1][y]
换句话说,当你做 array[x][y]
时,javascript 首先检索 array[x]
,然后寻找索引 [y ]
在该检索到的数组中。在您的情况下,第一次查找未定义 (grid[x-1]
),因此它无法查找 grid[x-1][y]
。当第一步未定义时,您正在检查最后一步是否未定义。
演示:http://jsfiddle.net/jtbowden/qWktv/
此外,如果您在parse_quad_tree
的开头$(c).addClass('active')
,您将能够突出显示单个 block ,并且您不会不必为每个邻居调用 `.addClass('active'),因为它会在递归开始时发生。
关于javascript - 我应该如何获得相同颜色的相邻 block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10436389/