用 JS 数组表示不确定大小的 2d 空间 - 负索引

Representing 2d space of indeterminate size with JS arrays - negative indexes?

本文关键字:空间 2d 索引 数组 JS 表示 不确定      更新时间:2023-09-26

我想在 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 的二维数组只不过是对内存空间的巨大浪费 - 或者至少会使您的应用程序非常慢。

最好

考虑一个一维数组,其中的对象表示点。您可以轻松地遍历它,可以为坐标值提供任何数字,并且它们不需要那么多内存。