比较 Node.js 中的两个缓冲区数据

发布于 2022-12-08 20:56:24 字数 1487 浏览 85 评论 0

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 如果 buf1buf2 是平等的
  • 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

云归处

暂无简介

文章
评论
26 人气
更多

推荐作者

lanyue

文章 0 评论 0

海螺姑娘

文章 0 评论 0

Demos

文章 0 评论 0

亢龙有悔

文章 0 评论 0

海未深

文章 0 评论 0

浅忆流年

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文