Node.js - Buffer.compare() 方法



NodeJS Buffer.compare() 方法有助于比较两个给定的缓冲区对象,并返回一个值来说明比较中的差异。Buffer.compare() 方法的一个很好的用法是对包含缓冲区的数组进行排序。

语法

以下是Node.JS Buffer.compare()方法的语法 -


 Buffer.compare(buf1, buf2)

参数

此方法接受两个参数。下面将对此进行解释。

  • buf1 −(必需)缓冲区对象。
  • buf2 −(必需)。缓冲区对象。

返回值

Buffer.compare() 方法返回一个数字,表示两个缓冲区的比较。返回的数字如下 -

  • 如果缓冲区对象相等,则为 0,
  • 如果第一个缓冲区对象大于第二个缓冲区对象,则为 1。
  • 如果第一个缓冲区对象小于第二个缓冲区对象,则为 -1。

该示例将创建两个缓冲区并进行比较。


const buffer1 = Buffer.from('test');
const buffer2 = Buffer.from('test');
const result = Buffer.compare(buffer1, buffer2);
console.log("The result is :"+result);

输出

The result is :0

该示例将创建两个缓冲区,其中缓冲区 1 将低于 buffer2,并且结果应为 -1。buffer1 将大于 buffer2 的另一个示例。所以结果必须是 1。


const buffer1 = Buffer.from('A');
const buffer2 = Buffer.from('B');
const result = Buffer.compare(buffer1, buffer2);
console.log("The result is :"+result);
const buffer11 = Buffer.from('B');
const buffer21 = Buffer.from('A');
const result1 = Buffer.compare(buffer11, buffer21);
console.log("The result is :"+result1);

输出

The result is :-1
The result is :1

在这个例子中,我们将看到如何利用 Buffer.compare() 方法对缓冲区数组进行排序。


const buffer1 = Buffer.from('How');
const buffer2 = Buffer.from('Are');
const buffer3 = Buffer.from('You');
var myarray = [buffer1, buffer2, buffer3];
console.log(myarray);
console.log(myarray.sort(Buffer.compare).toString());

输出

[ <Buffer 48 6f 77>, <Buffer 41 72 65>, <Buffer 59 6f 75> ]
Are,How,You