用 JS 数组表示不确定大小的 2d 空间 - 负索引
Representing 2d space of indeterminate size with JS arrays - negative indexes?
我想在 2d JS 数组中表示 2d 笛卡尔连接。 2d 空间的大小不确定(也可以扩展到 -x 和 -y 空间)。 这对于正 x 和 y 值很好,但是在 JS 数组中的最小索引为 0 的情况下,我无法扩展到负 x 和 y 空间。
我已经阅读了一些关于在 JS 中使用负索引的可能性的简短信息,并且显然这些在技术上是可行的,尽管没有得到适当的支持(例如,数组函数无法正常工作)。
我相信其他人一定有类似的要求,所以我想问 - 在 JS 中建模的推荐方法是什么?负数组索引是一个可行的解决方案吗?
你确定需要负输入吗?通常,计算机图形的每个坐标系都从屏幕左上角的 (0/0) 开始。他们在别的地方画斧头。
因此,有限尺寸的解决方案只是转换坐标。此外,您可以在数组上使用负 indize,但最好将其称为"数组对象上的键"。如果您知道它们的局限性,则可以使用它们:
- Array.length 仅适用于正 indizes。
- 因此,你不能从 0 循环到 a.length - 你将不得不找到另一个解决方案。(不要想着 for-in)。
- 因此,您需要确定循环的负启动 - 让它成为常量,甚至是数组 Object 的另一个属性(没有自动更新功能!
但是,你说你的空间是不确定的。问题只是没有无限的数据结构 - 没有编程语言。当然,数组 indize 可能会变得非常大,但你真的需要它们吗?我非常确定大小为 (2^32)^2 的二维数组只不过是对内存空间的巨大浪费 - 或者至少会使您的应用程序非常慢。
最好考虑一个一维数组,其中的对象表示点。您可以轻松地遍历它,可以为坐标值提供任何数字,并且它们不需要那么多内存。
相关文章:
- JavaScript名称空间和对象创建
- 在javascript中使用命名空间
- 为什么不推荐使用“with”?是否有更好或其他方法可以“下降”到对象的命名空间
- javascript中的命名空间,IDE中支持代码完成/内容辅助's
- 具有大型几何图形的基于沙发的空间查询
- 如何使用javascript命名空间
- JSDoc:模块和名称空间之间的关系是什么
- 匹配 2D 数组中的连续值
- js命名空间和变量范围
- html,js-如何限制元素"范围“-命名空间
- 动画制作/减缓元素填充移除元素留下的空间
- 转换自的JavaScript命名空间
- 命名空间与自调用函数
- 从2D RGB阵列创建图像
- 在IndexedDB中保留空间
- 构建画布RGB值的2D阵列
- EmberJS-适用于各种模型的适配器动态名称空间
- Javascript中的空间(2D)声音
- 在 2D 空间中将点从 A 移动到 B
- 用 JS 数组表示不确定大小的 2d 空间 - 负索引