javascript multidimensional类型化数组(Int8Array)示例

时间:2016-07-14 18:11:00

标签: javascript multidimensional-array typed-arrays typedarray

我尝试使用Typed数组而不是数组来减少内存:

function createarrayInt8(numrows,numcols,number){
       
	var arr = new Int8Array(numrows);
         
	for (var i = 0; i < numrows; ++i){
		var columns = new Int8Array(numcols);
		for (var j = 0; j < numcols; ++j){
			columns[j] = number;
		}
		arr[i] = columns;
	}
  
	return arr; 
}

但我无法创建多维Typed数组。 为什么? 我是否只需要将“number”变量转换为Int8?

1 个答案:

答案 0 :(得分:5)

键入的Int8Array只能保存8位整数。所以arr[i] = columns因为列类型为Int8Array而无法转换为存储(以任何有意义的方式)作为8位整数而无法工作。

解决方案:使arr为通用Array,其元素可以是数组,或者 - 可能是更高级但通常性能更高的解决方案 - 将多维数组存储为大小为{{1的单个平面数组并通过numrows * numcols访问元素:

&#13;
&#13;
arr[column + row * numcols]
&#13;
&#13;
&#13;