【发布时间】:2013-10-24 00:20:57
【问题描述】:
使用 JavaScript 我想偏移类型化数组中的元素,这样如果原始数组的值介于 0 到 99 之间,新数组将从 10 开始到 99,留下 10 个空元素用于新数据。 所以如果原始数组可以看成一个 10 x 10 的网格,我想将所有数据上移一行,然后在最下面一行输入新数据。
我知道这可以使用循环来完成,但是对于我的具有更大数组 (990 x 1920) 的项目来说,这种方法太慢了。 我已经尝试了 ArrayBuffers,但没有成功。
以下测试方法(使用子数组)的问题在于,虽然 data1 的大小指定为 100,但在应用时似乎会减小到子数组的大小。然后我找不到在最后添加更多数据的方法。
function initialize() {
data = new Uint32Array(100);
data1 = new Uint32Array(100);
for (var i = 0; i < data.length; i++) {
data[i] = i;
}
data1 = data.subarray(10);
console.log(data1);
}
除了循环之外,还有什么方法可以偏移类型数组中的数据并在末尾添加数据。
好的,我使用 Set() 在 Typed Arrays in Gecko 2: Float32Array concatenation and expansion 找到了解决方案。
【问题讨论】:
标签: javascript