将Uint8Array转换为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?

最佳答案

You can use var array = Array.from(uint8Array) in environments that support Array.from already (ES6), when its not supported you can use var array = [].slice.call(uint8Array)

    公众号
    关注公众号订阅更多技术干货!