JavaScript:方便使用 3 维数组吗?

标签 javascript arrays multidimensional-array

我有一组多个表(二维数组),每个表都有不同的内容,但结构相同。

现在我想在其中一张表中进行选择。

我的第一直觉是使用 3d 数组,但我读到你不应该使用这些我可以使用其他方法吗?以下是我目前的想法。我当然可以有许多没有数组的单独数组,但这似乎更糟。

tables:[[[1, 2, 3],
         [1, 2, 3]],

        [[4, 5, 6],
         [4, 5, 6]]

        [[7, 8, 9],
         [7, 8, 9]]]

最佳答案

如果数组很小,那么只需要一个 3d 数组。

但是,如果数组很大并且它们只包含数字,那么最好将结构展平为单个类型的数组,因为这样会分配更少的内存和更少的 javascript 对象。

例如,一个 200x200x200 的数组有 8000000 个元素,每个元素为 8 个字节(假设为 float ),当表示为单个 Float64Array 时将占用 ~64Mb,并且对于当前桌面来说完全没有问题电脑。

用 javascript 值数组的数组来表示相同的内容反而会更糟,因为管理机制将不仅仅是数据本身,而且会给垃圾收集器带来更大的压力。

关于JavaScript:方便使用 3 维数组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54269806/

相关文章:

javascript - 有谁知道为什么当我将它部署到 heroku 时,我的 bootstrap 主题投资组合的样式搞砸了?

javascript - 访问数组中的 JavaScript 对象

c - 删除数组中的重复项

python - 二维 numpy 数组列中的唯一条目

javascript - 是否有使用成员函数作为事件监听器的 ES6 快捷方式?

javascript - MySQL 表更改的事件监听器?

javascript - 模板文字中的换行符和字符串文字中的 '\' 之间有什么区别?

javascript - 将两个数组组合成 JSON 中的一个对象

javascript - 在javascript中初始化和填充多维数组

c - C. 凯撒 block 移位中数组输入按一个索引关闭