Установка неподписанного байта в ArrayBuffer - PullRequest
0 голосов
/ 26 августа 2018

Я знаю, что вы можете сделать

const buffer = new ArrayBuffer(16);
const dataView = new DataView(buffer);
dataView.setUint8(1, 4)
console.log(dataView.getUint8(1)); // 1

Однако я хотел бы установить неподписанный байт перед строкой замедления dataView, так что было бы возможно сделать это без доступа к dataView следовательно, если возможно, можно установить беззнаковый байт 4 со смещением байта 1 в ArrayBuffer вместо использования dataView.setUint8(1, 4)?

Или в качестве альтернативы было бы преобразовать DataView в ArrayBuffer

1 Ответ

0 голосов
/ 26 августа 2018

Я думаю, что важная вещь, которую вы упускаете, это то, что DataView - это просто представление.Поэтому, когда вы делаете dataView.setUint8(1, 4), вы делаете изменения buffer.Сам по себе dataView не содержит данных, это просто ссылка на буфер.Так что ваш код уже делает то, что вы хотите.Чтобы получить ArrayBuffer, просто используйте оригинальный буфер:

const buffer = new ArrayBuffer(16);
const dataView = new DataView(buffer);
dataView.setUint8(1, 4)
console.log(dataView.getUint8(1)); // 4
console.log(new Uint8Array(buffer)) // [ 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...