method Buffer.compare
#Buffer.compare(target: Uint8Array,targetStart?: number,targetEnd?: number,sourceStart?: number,sourceEnd?: number,): -1
| 0
| 1Compares buf with target and returns a number indicating whether bufcomes before, after, or is the same as target in sort order.
Comparison is based on the actual sequence of bytes in each Buffer.
0is returned iftargetis the same asbuf1is returned iftargetshould come beforebufwhen sorted.-1is returned iftargetshould come afterbufwhen sorted.
import { Buffer } from 'node:buffer';
const buf1 = Buffer.from('ABC');
const buf2 = Buffer.from('BCD');
const buf3 = Buffer.from('ABCD');
console.log(buf1.compare(buf1));
// Prints: 0
console.log(buf1.compare(buf2));
// Prints: -1
console.log(buf1.compare(buf3));
// Prints: -1
console.log(buf2.compare(buf1));
// Prints: 1
console.log(buf2.compare(buf3));
// Prints: 1
console.log([buf1, buf2, buf3].sort(Buffer.compare));
// Prints: [ <Buffer 41 42 43>, <Buffer 41 42 43 44>, <Buffer 42 43 44> ]
// (This result is equal to: [buf1, buf3, buf2].)
The optional targetStart, targetEnd, sourceStart, and sourceEnd arguments can be used to limit the comparison to specific ranges within target and buf respectively.
import { Buffer } from 'node:buffer';
const buf1 = Buffer.from([1, 2, 3, 4, 5, 6, 7, 8, 9]);
const buf2 = Buffer.from([5, 6, 7, 8, 9, 1, 2, 3, 4]);
console.log(buf1.compare(buf2, 5, 9, 0, 4));
// Prints: 0
console.log(buf1.compare(buf2, 0, 6, 4));
// Prints: -1
console.log(buf1.compare(buf2, 5, 6, 5));
// Prints: 1
ERR_OUT_OF_RANGE is thrown if targetStart < 0, sourceStart < 0, targetEnd > target.byteLength, or sourceEnd > source.byteLength.
Parameters #
#target: Uint8Array A Buffer or Uint8Array with which to compare buf.
#targetStart: number = 0 The offset within target at which to begin comparison.
#targetEnd: number = target.length The offset within target at which to end comparison (not inclusive).
#sourceStart: number = 0 The offset within buf at which to begin comparison.
#sourceEnd: number = buf.length The offset within buf at which to end comparison (not inclusive).
Return Type #
-1
| 0
| 1