在 Javascript 中将 ArrayBuffer 转换为 int

Converting ArrayBuffer to int in Javascript

我正在尝试使用 JavaScript 将 ArrayBuffer 转换为 int。我的应用程序使用 WebSocket,在发送端我有一个 0 到 4 之间的整数。我在 C# 中转换这个 ArraySegment。我通过网络套接字将其发送到我的 JavaScript 客户端,该客户端将其作为 ArrayBuffer 接收。

ArrayBuffer 现在保存值 0 或 1 或 2 或 3。我怎样才能 'read' 该值?

使用DataView:

var buffer = new ArrayBuffer(16);
var dv = new DataView(buffer, 0);

dv.setInt16(1, 42);
dv.getInt16(1); //42
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];