簡體   English   中英

在 Javascript 中將 Uint8Array 轉換為數組

[英]Convert Uint8Array to Array in Javascript

我有包含某個文件的二進制數據的 Uint8Array 實例。
我想將數據發送到服務器,在那里它將被反序列化為 byte[]。
但是,如果我發送 Uint8Array,則會出現反序列化錯誤。

所以,我想將它轉換為 Array,因為 Array 反序列化得很好。
我這樣做:

    function uint8ArrayToArray(uint8Array) {
        var array = [];

        for (var i = 0; i < uint8Array.byteLength; i++) {
            array[i] = uint8Array[i];
        }

        return array;
    }

此功能運行良好,但對於大文件效率不高。

問題:有沒有更有效的方法來轉換 Uint8Array --> Array?

您可以在已經支持Array.from (ES6) 的環境中使用以下內容

var array = Array.from(uint8Array)

如果不支持,您可以使用

var array = [].slice.call(uint8Array)

有一個使用原型的 Uint8Array 方法(但只支持 Firefox 和 Chrome):

TypedArray.prototype.entries() --> 它返回一個數組。

檢查一下: https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/entries

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM