无法获取Uint8Array字节

时间:2018-09-18 04:22:50

标签: javascript

我通过创建一个数组缓冲区 var uni = new Uint8Array([255, 216, 255, 0, 0, 0, 0, 0]) 但是当我尝试使用map取回字节时 uni.map(byte => byte.toString(16)) 它返回 Uint8Array(8) [0, 0, 0, 0, 0, 0, 0, 0]

2 个答案:

答案 0 :(得分:4)

您必须先将TypedArray转换为ArrayArray.prototype.slice.call(uni).map(byte=>byte.toString(16))

答案 1 :(得分:2)

Uint8Array只能包含8位无符号整数(0到255之间的整数)。当您使用Uint8Array.protoype.map()方法尝试将每个元素转换为字符串时,它们会超出[0,255]范围,并设置为0。

如果要将其转换为字符串,请首先将Uint8Array转换为普通的Array,然后使用Array.prototype.map()

const array = Array.from(uni)
array.map(byte => byte.toString(16))