Uint8Array转buffer在HarmonyOS 鸿蒙Next中的结果异常
Uint8Array转buffer在HarmonyOS 鸿蒙Next中的结果异常
uint8Array 转 Buffer
/**
* @param { Uint8Array } array - 字节数组
* @param { number } start - 可选,开始位置 默认 0
* @param { number } end - 可选,结束位置,默认 是 uint8Array 的长度
* @returns { string } 返回 16进制字符串
*/
static uint8ArrayToBuffer(array: Uint8Array, start = 0, end?: number): ArrayBuffer {
if (end === undefined) {
end = array.length;
}
let resultAray = array.subarray(start, end)
let result = resultAray.buffer
return result
}
测试代码
let uint8Array_2 = new Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]);
let buffer_2 = new Uint8Array([108, 108, 111, 32]).buffer;
let start = 2;
let end = 6;
let result:ArrayBuffer = uint8ArrayToBuffer(uint8Array_2,start,end);
最终得到的结果 result:ArrayBuffer
不等于 buffer_2
, 我认为他们两应该是相等的
更多关于Uint8Array转buffer在HarmonyOS 鸿蒙Next中的结果异常的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
3 回复
result 不等于 buffer_2 是因为 subarray() 返回的是一个新的、基于相同 ArrayBuffer、元素类型也相同的 TypedArray。
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/TypedArray/subarray
更多关于Uint8Array转buffer在HarmonyOS 鸿蒙Next中的结果异常的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
请不要告诉我你这个小可爱的验证方法是result === buffer_2,不然我会狠狠地踢你的屁股的
这是什么类型,这是引用类型,引用类型能直接比值大小吗