gpt4 book ai didi

javascript - 将无符号整数数组快速转换为 base64

转载 作者:行者123 更新时间:2023-11-28 02:07:08 25 4
gpt4 key购买 nike

我有一个 Javascript 中的 VBArray,其中包含一长组 8 位无符号整数,通常超过 1'000'000 个条目。

我可以轻松地将其转换为常规数组或 Uint8Array,我的目标是获取其 base64 表示形式。

我已经尝试过the methods here ,但是正在运行

var b64encoded = btoa(String.fromCharCode.apply(null, _uint8Array));

抛出堆栈空间不足异常。

转换本身不是问题,因为我可以编写自己的转换方法来执行以下操作

create empty bit string
foreach value in the array
get binary with toString(2)
pad the binary to make it 8-bit
add it to the bit string

Base64 转换就变得微不足道了。

正如您可以想象的那样,性能相当差。关于如何改进这个问题有什么建议吗?

最佳答案

您可以尝试这样的方法来限制参数数量,从而减少所需的堆栈空间:

var A = new Uint8Array(10000000), s = '';

// Encode at most 49152 bytes at a time
for (var i = 0; i < A.length; i += 49152) {
s += btoa(String.fromCharCode.apply(null, A.subarray(i, i + 49152)));
}

您可以将数字 49152 更改为既低于浏览器限制又可以被 3 整除的任何数字。

关于javascript - 将无符号整数数组快速转换为 base64,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17610122/

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