在Javascript中将Uint8Array转换为Array

时间:2015-04-16 13:44:13

标签: javascript arrays

我有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 - &gt;阵列吗

2 个答案:

答案 0 :(得分:47)

您可以在已支持Array.from的环境中使用var array = Array.from(uint8Array)(ES6),如果不支持,您可以使用var array = [].slice.call(uint8Array)

答案 1 :(得分:0)

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

TypedArray.prototype.entries() - &gt;它返回一个数组。

检查出来: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/entries