我正在尝试使用JavaScript将ArrayBuffer转换为int。我的应用程序使用WebSocket,在Sender端我有一个0到4之间的整数。我在C#中转换这个ArraySegment。我通过Web套接字将其发送到我的JavaScript客户端,该客户端将其作为ArrayBuffer接收。
ArrayBuffer现在保持0或1或2或3的值。如何“读取”该值?
答案 0 :(得分:7)
使用DataView:
var buffer = new ArrayBuffer(16);
var dv = new DataView(buffer, 0);
dv.setInt16(1, 42);
dv.getInt16(1); //42
答案 1 :(得分:0)
var i = new Uint8Array(buf)[0];
然后i
就是您所需要的。如果您需要subarray()
:
ArrayBuffer.prototype.subarray = function (a, b) {
var u = new Uint8Array(this);
return new Uint8Array(u.subarray(a, b)).buffer;;
};
和
var i = new Uint8Array(buf.subarray(0,1))[0];