如何遍历像:
这样的字节数组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 0C
和0B 0D
我怎么能这两个呢?
for循环好吗?我应该用别的吗?任何有关提高性能的建议也是受欢迎的。
更新
我忘了说我必须执行实际的i++
因为我必须遍历每个字节,但我也希望能够通过两次访问缓冲区的索引。
所以我需要的是i
是0
然后我需要获得data[i]
。
如果i
是2
,那么我需要获得data[i+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重新开始,我给出的原始答案应该可以解决问题。