- Node.js 教程
- Node.js - 首页
- Node.js - 简介
- Node.js - 环境搭建
- Node.js - 第一个应用
- Node.js - REPL 终端
- Node.js - 命令行选项
- Node.js - 包管理器 (NPM)
- Node.js - 回调函数概念
- Node.js - 上传文件
- Node.js - 发送邮件
- Node.js - 事件
- Node.js - 事件循环
- Node.js - 事件发射器
- Node.js - 调试器
- Node.js - 全局对象
- Node.js - 控制台
- Node.js - 进程
- Node.js - 应用程序扩展
- Node.js - 打包
- Node.js - Express 框架
- Node.js - RESTful API
- Node.js - 缓冲区
- Node.js - 流
- Node.js - 文件系统
- Node.js MySQL
- Node.js - MySQL 入门
- Node.js - MySQL 创建数据库
- Node.js - MySQL 创建表
- Node.js - MySQL 插入数据
- Node.js - MySQL 查询数据
- Node.js - MySQL 条件查询
- Node.js - MySQL 排序
- Node.js - MySQL 删除数据
- Node.js - MySQL 更新数据
- Node.js - MySQL 连接查询
- Node.js MongoDB
- Node.js - MongoDB 入门
- Node.js - MongoDB 创建数据库
- Node.js - MongoDB 创建集合
- Node.js - MongoDB 插入数据
- Node.js - MongoDB 查找数据
- Node.js - MongoDB 查询
- Node.js - MongoDB 排序
- Node.js - MongoDB 删除数据
- Node.js - MongoDB 更新数据
- Node.js - MongoDB 数据限制
- Node.js - MongoDB 连接查询
- Node.js 模块
- Node.js - 模块
- Node.js - 内置模块
- Node.js - 实用程序模块
- Node.js - Web 模块
- Node.js 有用资源
- Node.js - 快速指南
- Node.js - 有用资源
- Node.js - 讨论
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
广告