使用2d数组作为查找表与计算点击

时间:2012-12-14 23:37:51

标签: javascript lookup-tables

我有一个宽度为1000,高度为600的画布。在这个画布中,我有300-500个矩形瓷砖,每个瓷砖都有自己的ID。我可以检测画布中的鼠标坐标,但我必须要有一个1000乘600的2D数组作为查找表,或者运行算法来查找坐标是否落在图块中。这是javascript所以它都在浏览器中。是否有一个1000乘600的2D阵列太多,浏览器无法处理?实施明智的查找表是迄今为止更容易解决的问题(并且可能更快),但太空中的权衡是否过多?

1 个答案:

答案 0 :(得分:1)

这可能取决于数字。

如果有多次点击,并且目标的位置没有变化,可能会更有效地预先计算映射,因为您建议

但是,生成初始映射的成本相对较高,如果显示更改,则再次产生该成本(认为有办法缓解这种情况)。我的猜测是,它可能更快地遍历目标并为每次点击做数学运算,因为当它只是矩形时,数学不应该非常复杂/密集。

我会说,使用最简单的方法来实现。如果它不够高效(或者,你只是想试一试),那么尝试替代方案并进行比较。