从0开始逐字节迭代2

时间:2014-03-31 15:01:20

标签: javascript node.js

如何遍历像:

这样的字节数组
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++因为我必须遍历每个字节,但我也希望能够通过两次访问缓冲区的索引。

所以我需要的是i0然后我需要获得data[i]

如果i2,那么我需要获得data[i+1]。等等。

1 个答案:

答案 0 :(得分:2)

这应该这样做。

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重新开始,我给出的原始答案应该可以解决问题。