gpt4 book ai didi

javascript 多维类型数组 (Int8Array) 示例

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:42:11 24 4
gpt4 key购买 nike

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

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;
}

但我无法创建多维类型化数组。为什么?我是否必须仅将“数字”变量转换为 Int8?

最佳答案

类型化的 Int8Array 只能容纳 8 位整数。所以 arr[i] = columns 将不起作用,因为列是 Int8Array 类型,无法转换为 8 位数组并存储(以任何有意义的方式)整数。

解决方案:将 arr 设为一个通用的 Array,其元素可以是数组,或者 - 可能是更高级但通常更高效的解决方案 - 将多维数组存储为一个平面大小为 numrows * numcols 的数组并通过 arr[column + row * numcols] 访问元素:

var numrows = 5, numcols = 4;
var arr = new Int8Array(numrows * numcols).fill(0);

arr[3 + 1 * numrows] = 1; // col = 3, row = 1

console.log (arr);

关于javascript 多维类型数组 (Int8Array) 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38381317/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com