我有一个由几个Uint 8Arrays组成的数组,类似于:[Uint8Array(16384), Uint8Array(16384), Uint8Array(16384), Uint8Array(16384), Uint8Array(16384), Uint8Array(8868)]
如何将它们合并/连接/联接(不确定哪个术语正确)到单个ArrayBuffer?
这里的关键是我需要的输出必须是一个ArrayBuffer。
我有一个由几个Uint 8Arrays组成的数组,类似于:[Uint8Array(16384), Uint8Array(16384), Uint8Array(16384), Uint8Array(16384), Uint8Array(16384), Uint8Array(8868)]
如何将它们合并/连接/联接(不确定哪个术语正确)到单个ArrayBuffer?
这里的关键是我需要的输出必须是一个ArrayBuffer。
6条答案
按热度按时间gmxoilav1#
可以使用
set
方法,创建一个新的类型化数组,包含所有大小。示例:备选方案:将类型化数组转换为"普通"数组。将其连接并再次创建一个类型化数组。
在您的情况下(解决方案):
p4rjhz4m2#
就像对待普通数组一样:
nkcskrwz3#
您可以使用一个helper函数来按照提供的顺序连接任意长度数组的数组。
这看起来很好很简洁,但由于spread运算符,它也会在每次迭代时复制
acc
:这看起来有点长,但是性能更好,因为
acc
不是在每个迭代上展开,而是推送到并返回:pinkon5k4#
这对我很有效:single_array就是您想要的
gojuced75#
基于Dominik答案的函数:
disho6za6#
有一个简单的方法:
但那时候很慢