Node.js - Buffer.entries() 方法



NodeJS buffer.entries() 方法从给定的缓冲区创建一个迭代器对象,并从缓冲区的内容中返回一对带有 [index, byte] 的对。

语法

以下是 NodeJS entries() 方法的语法 -


 buffer.entries()

参数

此方法没有任何参数。

返回值

buffer.entries() 方法返回一个迭代器对象,该对象具有一对索引和字节,来自给定缓冲区的内容。

返回的值是一个迭代器,因此要访问它,您可以使用 for-of() 循环。您还可以使用 next() 方法访问该值。

在下面的示例中,当 Consoled 时,i 将为您提供字母 H、E、L、L 和 0 的索引和 Unicode 字节值。


var buffer = Buffer.from('HELLO');
for (var i of buffer.entries()) {
	 	console.log(i);
}

输出

0 是索引,72 是字符 H 为 72 的 Unicode 值,E 是 69,index:1,L 是 76,O 是 79。

[ 0, 72 ]
[ 1, 69 ]
[ 2, 76 ]
[ 3, 76 ]
[ 4, 79 ]

在此示例中,将使用 next() 方法访问从 buffer.entries() 返回的迭代器。


var buffer1 = Buffer.from('HELLO');
const bufferiterator = buffer1.entries();
let myitr = bufferiterator.next();
while(!myitr.done){
	 	console.log(myitr.value);
	 	myitr = bufferiterator.next();
}

输出

迭代器通过连续调用 next() 方法进行循环,直到 done 的值变为 true。Have the done: true 表示我们已经到达了迭代器的末尾。

[ 0, 72 ]
[ 1, 69 ]
[ 2, 76 ]
[ 3, 76 ]
[ 4, 79 ]

我们还可以使用 Buffer.entries() 方法将 buffer1 的内容复制到另一个缓冲区。


const buffer1 = Buffer.from("HELLO");
const buffer2 = Buffer.alloc(buffer1.length);
for (const [index, bytevalue] of buffer1.entries()) {
	 	buffer2[index] = bytevalue;
}
console.log("The string in buffer2 is "+buffer2.toString());

输出

在上面的示例中,我们使用字符串创建了一个缓冲区:HELLO,为 buffer2 分配了相同长度的字节。稍后,我们循环了 buffer1 的迭代器,并使用索引和值更新了 buffer2,如示例中所示。

The string in buffer2 is HELLO