从 0 开始按 2 遍历字节



你如何遍历一个字节数组,比如:

var data = new Buffer("0A0B0C0D", "hex");
for (var i = 0; i < data.length; i++) {
  console.log( data[i] ); // will iterate 1 by 1. Not what I wanted
  console.log( data[i+=1] ); // tried
  console.log( data[(i+=1)-1] ); // tried
}

我只想遍历它并获得以下结果:0A 0C0B 0D
我怎样才能做到这两点?

for 循环可以吗?我应该使用其他东西吗?也欢迎任何更好的性能建议。


更新

忘了说我必须做实际的i++因为我必须遍历每个字节,但我也希望能够访问缓冲区的索引。

所以我所需要的只是如果i 0那么我需要得到data[i].

如果i 2那么我需要得到data[i+1].等等等等。

这应该可以做到。

for (var i = 0; i < data.length; i+=2) 

您的其他尝试实际上并没有改变 i 的值。 他们只是告诉指针看另一个地方。

编辑:试试这个:

var data = new Buffer("0A0B0C0D", "hex");
var xx=0;
for (var i = 0; i < data.length; i++) {
  console.log( data[i] ); // will iterate 1 by 1. Not what I wanted
  console.log( data[xx] );
  xx++;
  console.log( data[xx] );
  xx=0;
}

虽然,我不完全明白这将如何帮助。 这将只检查 xx 和 xx+1 无论我运行了多少次。如果你想同时检查i和i+1,然后从i+2重新开始,我给出的原始答案应该可以解决问题。

最新更新