比较 Node.js 中的两个缓冲区数据
Node.js 缓冲区 是存储任意二进制数据的对象。 它们在 Node 中相当于 blob 。
比较两个缓冲区很容易。 Node.js' Buffer
类有一个静态函数 compare()
如果两个缓冲区相等,则返回 0。
const buf1 = Buffer.from('Hello, World', 'utf8');
const buf2 = Buffer.from('Hello, World', 'utf8');
const buf3 = Buffer.from('Different buffer', 'utf8');
Buffer.compare(buf1, buf2); // 0, means the 2 buffers are equal
Buffer.compare(buf1, buf3); // 1, means buf1 < buf3
这意味着,检查是否 buf1
具有与相同的字节 buf2
, 你可以做:
const isEqual = Buffer.compare(buf1, buf2) === 0;
排序
这 Buffer.compare()
函数返回:
- 0 如果
buf1
和buf2
是平等的 - 1 如果
buf1 < buf2
- -1 如果
buf1 > buf2
这意味着您可以使用 Buffer.compare()
在 数组进行排序时。 对缓冲区 Buffer.compare()
按字典顺序排列缓冲区,因此,对于包含 utf8 字符串的缓冲区,使用排序 Buffer.compare()
相当于按缓冲区的字符串表示形式排序。
const buffers = [
Buffer.from('A', 'utf8'),
Buffer.from('C', 'utf8'),
Buffer.from('B', 'utf8')
];
buffers.sort(Buffer.compare);
buffers.map(buf => buf.toString('utf8')); // ['A', 'B', 'C']
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: 在 Node.js 中获取缓冲区的长度
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论