在javascript中访问多维数组的最有效方法



我在javascript中有一个n*n*n数组,其中我需要执行大量访问。

我不需要依次访问所有元素,只需要在特定位置访问即可。我还希望,如果可能的话,不要分配数组单元格的所有内存,直到它被使用(否则它将直接占用几MB的内存)。

我正在寻找最有效的方法。我尝试使用由构建键(x + '#' + y + '#' + z)索引的字典,但它显然不够高效。

你能建议一些其他有效的方法来实现这一点吗?

访问对象恐怕没有比字典方法更快的方法了,因为Javascript中的一切都是这样。为了不分配内存,可以使用对象而不是数组:

var x = {};
var key = x + '#' + y + '#' + z;
x[key] = 'some value';

这至少会让你担心内存,但我不确定这真的是一个问题。(另外,我甚至不确定,如果你使用一个数组,它将分配内存,因为我不熟悉Javascript中的内存分配)。

我认为你的多维数组是完美的。如果以稀疏方式创建,它不会耗尽所有内存,而更像一个简单的"字典"对象——您也可以使用嵌套对象。然而,我认为嵌套查找将比在大字典中更快,因为哈希函数在键数较少的情况下变得更简单。此外,从最内层维度加载或迭代整个数组将明显快于从大字典中查询每个单独的项。

毕竟,如果您实际上没有遇到任何重要的性能问题,请使用您认为更容易写/读/使用的内容。

相关内容

  • 没有找到相关文章

最新更新