• Node.js Video Tutorials

Node.js - Buffer.keys() 方法



NodeJS 的 `buffer.keys()` 方法將返回一個迭代器物件。迴圈遍歷該物件時,它將返回緩衝區物件中每個位元組的鍵。

語法

以下是 NodeJS `keys()` 方法的語法:

buffer.keys()

引數

`buffer.keys()` 方法沒有任何引數。

返回值

`buffer.keys()` 方法返回一個迭代器物件,該物件包含緩衝區物件中每個位元組的鍵(索引值)。

示例

緩衝區是使用 NodeJS `Buffer.from()` 建立的,使用的字串是 **Hello**。字串的長度是 5,因此建立緩衝區時將保留 5 個位元組。

現在,要獲取每個字元的鍵,即索引值,可以使用 NodeJS `Buffer.keys()` 方法。由於該方法返回一個迭代器,因此可以使用 for-of 迴圈對其進行迴圈,如示例所示。

const buffer = Buffer.from('Hello');
for (let i of buffer.keys()) {
   console.log(i);
}

輸出

執行後的輸出如下:

0
1
2
3
4

示例

在這個例子中,我們將使用 `next()` 方法訪問 `buffer.keys()` 返回的迭代器。

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

輸出

透過連續呼叫 `next()` 方法來迴圈迭代器,直到迭代器中 **`done` 鍵的值** 變為 `true`。`done: true` 表示已到達迭代器的末尾。

0
1
2
3
4

示例

我們還可以使用 `Buffer.keys()` 方法將 `buffer1` 的內容複製到另一個緩衝區。

const buffer1 = Buffer.from("HELLO");
const buffer2 = Buffer.alloc(buffer1.length);

for (const a of buffer1.keys()) {
   buffer2[a] = buffer1[a];
}
console.log("The string in buffer2 is "+buffer2.toString());

輸出

在上面的例子中,我們使用字串“HELLO”建立了一個緩衝區,為 `buffer2` 分配了相同長度的位元組。之後,我們迴圈遍歷 `buffer1` 的迭代器,並使用索引更新 `buffer2`,如示例所示。

The string in buffer2 is HELLO

示例

在示例中,我們使用字串“Hello”的十六進位制鍵碼。

const buffer1 = Buffer.from('48656c6c6f', 'hex');
for (let i of buffer1.keys()) {
   console.log(i);
}   
console.log("the string is "+buffer1.toString());

輸出

如果您檢視列印的鍵,它們與字串“Hello”中字元的數量相同。

0
1
2
3
4
the string is Hello
nodejs_buffer_module.htm
廣告
© . All rights reserved.