I have Uint8Array instance that contains binary data of some file.
I want to send data to the server, where it will be deserialized as byte[].
But if I send Uint8Array, I have deserialization error.
So, I want to convert it to Array, as Array is deserialized well.
I do it as follows:
function uint8ArrayToArray(uint8Array) {
var array = [];
for (var i = 0; i < uint8Array.byteLength; i++) {
array[i] = uint8Array[i];
}
return array;
}
This function works fine, but it is not very efficient for big files.
Question: Is there more efficient way to convert Uint8Array --> Array?
You can use the following in environments that support Array.from
already (ES6)
var array = Array.from(uint8Array)
When that is not supported you can use
var array = [].slice.call(uint8Array)
There is a method of Uint8Array using the prototype (but it only supported by Firefox and Chrome):
TypedArray.prototype.entries() --> it returns a array.
Check it out: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/entries
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.