如何转换数组中的缓冲区?缓冲液(十六进制值):
myBuffer = <Buffer 48 65 6c 6c 6F >
我想要一个变量类型的数组,如下所示:
myArray = [48, 65, 6c, 6c, 6F] // Hex values or myArray = [72, 101, 108, 108, 111] // Decimal values
重要提示:我不想使用for循环来遍历缓冲区的字节。我想知道是否有一种原生的方法来将缓冲区转换为数组。
for
kknvjkwl1#
看起来您正在引用Node.js Buffer。如果是这种情况,您可以简单地执行以下操作:
var buf = new Buffer([72,101,108,108,111]) //<Buffer 48 65 6c 6c 6f> var arr = Array.prototype.slice.call(buf) //[72,101,108,108,111]
z4iuyo4d2#
如果你正在谈论arraybuffer,试试这个方法:
function ab2str(buf) { return String.fromCharCode.apply(null, new Uint16Array(buf)); }
如果您正在讨论nodejs的缓冲区对象,请尝试以下操作:
let bufferOne = Buffer.from('This is a buffer example.'); console.log(bufferOne); // Output: <Buffer 54 68 69 73 20 69 73 20 61 20 62 75 66 66 65 72 20 65 78 61 6d 70 6c 65 2e> let json = JSON.stringify(bufferOne); console.log(json); // Output: {"type":"Buffer","data": [84,104,105,115,32,105,115,32,97,32,98,117,102,102,101,114,32,101,120,97,109,112,108,101,46]} json = JSON.parse(json); json.data.forEach(e=> console.log(e.toString(16))); // Output: 54 68 69 73 20 69 73 20 61 20 62 75 66 66 65 72 20 65 78 61 6d 70 6c 65 2e
nr9pn0ug3#
在ES6中,这也适用于:
const buffer = new Buffer([72,101,108,108,111]) const arr = [...buffer] //[72,101,108,108,111]
3条答案
按热度按时间kknvjkwl1#
看起来您正在引用Node.js Buffer。如果是这种情况,您可以简单地执行以下操作:
z4iuyo4d2#
如果你正在谈论arraybuffer,试试这个方法:
如果您正在讨论nodejs的缓冲区对象,请尝试以下操作:
nr9pn0ug3#
在ES6中,这也适用于: