Зачем карту над Unit8Array ведет себя странно?Javascript

Форум по Javascript
Anonymous
Зачем карту над Unit8Array ведет себя странно?

Сообщение Anonymous »

Я пытаюсь получить MimeType из буфера изображения или ArrayBuffer. Но я сталкиваюсь с странной проблемой. < /P>
Я использую следующий код для преобразования байтов подписи в шестнадцатеричную строку. < /P>


'snippet-code-js lang-js-griteprint-over-over-overrideconst uint8Array = new Uint8Array([137, 80, 78, 71]);
const signatureLength = 4;
const signature1 = uint8Array.slice(0, signatureLength).map(byte => {
const signature = byte.toString(16).padStart(2, "0");
console.log("signature --- ", signature, byte, typeof signature);
return signature;
});
const signature = signature1.join("").toUpperCase();
console.log("signature 1 --- ", signature1, signature);< /code>
< /div>
< /div>
< /p>
Как вы можете видеть в выходе консоли, 78 фактически преобразуется в '4e', но в результате карты он сохраняется как 0. Это поведение кажется очень странным. Что здесь идет?


Подробнее здесь: https://stackoverflow.com/questions/794 ... es-strange

Вернуться в «Javascript»