javascript中的循环缓冲区

javascript中的循环缓冲区,javascript,node.js,Javascript,Node.js,背景 我试图迭代一个基本上包含十六进制值的缓冲区对象。这对我来说是完美的,因为每个十六进制值都是我需要解码的东西。但是,当我在数组中循环时,它们会转换为十进制值。如何在不转换值的情况下循环它 我的代码 console.log(encoded) const buf = Buffer.from(encoded) for (const item of buf) { console.log(item) } 我的一些输出 <Buffer 0c 00 00 00 99 4e

背景

我试图迭代一个基本上包含十六进制值的缓冲区对象。这对我来说是完美的,因为每个十六进制值都是我需要解码的东西。但是,当我在数组中循环时,它们会转换为十进制值。如何在不转换值的情况下循环它

我的代码

  console.log(encoded)
  const buf = Buffer.from(encoded)
  for (const item of buf) {
    console.log(item)
  }
我的一些输出

<Buffer 0c 00 00 00 99 4e 98 3a f0 9d 09 3b 00 00 00 00 68 48 12 3c f0 77 1f 4a 6c 6c 0a 4a 0f 32 5f 31 31 39 38 36 31 5f 31 33 33 39 33 39 40 fc 11 00 09 00 ... 336 more bytes>
12
0
0
0
153
78
152
58
240
157
9
...

12
0
0
0
153
78
152
58
240
157
9
...

原始输出
它们没有被转换,它们是数字。十六进制和十进制是你写一个数字的方式,但不管怎样,数字都是一样的。只是当你
console.log
一个缓冲区时,它会用十六进制来显示它的内容。但是当您单独输出它们时,您使用的是
console.log
,它使用默认的数字=>字符串(十进制)。不管怎样,它们都只是数字


如果你需要这些数字作为十六进制字符串,你可以使用
item.toString(16)
,但我怀疑你想要它们作为数字,在这种情况下,只需使用
item
就像T.J.在他的回答中提到的那样,你可能想要这些数字。但是,如果你确实需要像你说的那样格式化的数字,你可以这样做:

函数*hexFormatValues(缓冲区){
for(设缓冲区的x){
常量十六进制=x.toString(16)
屈服十六进制焊盘起始(2,'0')
}
}
const buf=Buffer.from([12,0,0,0,153,78,152,58,240,157,9])
for(让十六进制值(buf)){
控制台日志(十六进制)
} 
//0c 00 00 99 4e 98 3a f0 9d 09

“这对我来说太完美了,因为每个十六进制值都是我需要解码的。”如何解码?您可以使用yourNumber.toString(16)将其表示为字符串我问了一个新问题,您可能可以帮助解决