使用底层 ArrayBuffer 创建 3D 数组(例如 myArray[x][y][z])的最佳方法是什么(如果可能?)。该数组应由 Uint32Array 组成。
就我而言,它是一个相当大的数组(大约 200x200x200)。如果我使用类型化数组(例如 uint32),迭代它会快得多,因此我想使用 ArrayBuffers。还是我错了?
最佳答案
您可以编写一个简单的函数,将 x/y/z 索引转换为 ArrayBuffer
中的相应索引。
function arrayIndex(x, y, z, xSize, ySize) {
return z + ySize * (y + x * xSize);
}
参见Memory layout of multi-dimensional arrays将一组索引转换为线性索引的通用算法。
关于javascript - Javascript 中 ArrayBuffer 的 3D 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37333224/