Javascript UINT16阵列到UINT8阵列

Javascript UINT16阵列到UINT8阵列,javascript,arraybuffer,uint16,Javascript,Arraybuffer,Uint16,我有一个基本问题。假设我有一个UINT16阵列,其中有数字4 data_16=new Uint16Array([4]); 现在我有一个长度1和一个长度2 如何将其转换为Uint8Array 我不想创建新视图 data_8 = new Uint8Array(data_16) 如果我这样做,我得到数组长度1和字节长度1。这不是我想要的 我需要将16位数组中的16位值扩展为8位值,这样8位数组就可以得到8位数组中的2个值 我可以创建一个函数,它可以转换为shif和所有这些东西。但是它只能通过数

我有一个基本问题。假设我有一个UINT16阵列,其中有数字4

data_16=new Uint16Array([4]);  
现在我有一个长度1和一个长度2

如何将其转换为Uint8Array

我不想创建新视图

data_8 = new Uint8Array(data_16)
如果我这样做,我得到数组长度1和字节长度1。这不是我想要的

我需要将16位数组中的16位值扩展为8位值,这样8位数组就可以得到8位数组中的2个值


我可以创建一个函数,它可以转换为shif和所有这些东西。但是它只能通过数组操作来完成吗?

您可以使用buffer属性,即
data\u 8=new Uint8Array(data\u 16.buffer,data\u 16.byteOffset,data\u 16.bytellength)

我建议
新建Uint8Array(data\u 16.buffer,data\u 16.byteOffset,data\u 16.bytellength)
,因为在一般情况下,不能保证
data\u 16
查看其所有备份
ArrayBuffer