我想在 2d JS 数组中表示 2d 笛卡尔坐标。二维空间的大小不确定(也可以扩展到 -x 和 -y 空间)。这对于正 x 和 y 值来说很好,但是在 JS 数组中最小索引为 0 时,我无法扩展到负 x 和 y 空间。
我读过一些关于在 JS 中使用负索引的可能性的简短信息,显然这些在技术上是可行的,尽管没有得到适当的支持(例如数组函数可能无法正常工作)。
我确信其他人一定有类似的需求,所以我想问 - 在 JS 中建模的推荐方法是什么?负数组索引是可行的解决方案吗?
您确定需要负数吗?通常,计算机图形的每个坐标系都从屏幕左上角的 (0/0) 开始。他们把斧头画在别处。
因此,有限尺寸的解决方案只是变换坐标。还有,你can在数组中使用负索引,但最好称之为“数组对象上的键”。如果您知道它们的局限性,则可以使用它们:
- Array.length 仅适用于正索引。
- 因此,你不能从 0 循环到 a.length - 你必须找到另一个解决方案。 (并且不要考虑 for-in)。
- 因此,您需要确定循环的负开始 - 让它成为一个常量,甚至是数组对象的另一个属性(没有自动更新功能!)。
但是,你说你的空间是不确定的。问题在于,在任何编程语言中都不存在无限的数据结构。当然,数组索引可能会变得非常大,但是您真的需要它们吗?我非常确定大小为 (2^32)^2 的二维数组只不过是内存空间的巨大浪费 - 或者至少会使您的应用程序变得极其缓慢。
最好考虑一个一维数组,其中的对象表示其中的点。您可以轻松地循环它,您可以使用任何数字作为坐标值,并且它们不需要那么多内存。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)