• Node.js Video Tutorials

Node.js - Buffer.entries() 方法



NodeJS 的 buffer.entries() 方法根据给定的缓冲区创建一个迭代器对象,并返回缓冲区内容中的一对 [索引,字节]。

语法

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

buffer.entries()

参数

此方法没有任何参数。

返回值

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

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

示例

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

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

输出

0 是索引,字符 H 的 Unicode 值为 72,E 的值为 69,索引为 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 来循环迭代器。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
nodejs_buffer_module.htm
广告