Подтвердить что ты не робот

Преобразование Uint8Array в массив в Javascript

У меня есть экземпляр Uint8Array, который содержит двоичные данные некоторого файла.
Я хочу отправить данные на сервер, где он будет десериализован как byte [].
Но если я отправлю Uint8Array, у меня есть ошибка десериализации.

Итак, я хочу преобразовать его в Array, так как массив десериализуется хорошо.
Я делаю это следующим образом:

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

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

        return array;
    }

Эта функция работает нормально, но она не очень эффективна для больших файлов.

Вопрос: Есть ли более эффективный способ преобразования Uint8Array → Array?

4b9b3361

Ответ 1

Вы можете использовать var array = Array.from(uint8Array) в средах, которые поддерживают Array.from уже (ES6), когда его не поддерживают, вы можете использовать var array = [].slice.call(uint8Array)