• target {Buffer|Uint8Array} 要与 buf 对比的 Buffer 或 [Uint8Array]。
    • targetStart {integer} target 中开始对比的偏移量。默认值: 0
    • targetEnd {integer} target 中结束对比的偏移量(不包含)。默认值: target.length
    • sourceStart {integer} buf 中开始对比的偏移量。默认值: 0
    • sourceEnd {integer} buf 中结束对比的偏移量(不包含)。默认值: [buf.length]。
    • 返回: {integer}

    对比 buftarget,并返回一个数值,表明 buf 在排序上是否排在 target 前面、或后面、或相同。 对比是基于各自 Buffer 实际的字节序列。

    • 如果 targetbuf 相同,则返回 0
    • 如果 target 排在 buf 前面,则返回 1
    • 如果 target 排在 buf 后面,则返回 -1
    1. const buf1 = Buffer.from('ABC');
    2. const buf2 = Buffer.from('BCD');
    3. const buf3 = Buffer.from('ABCD');
    4. console.log(buf1.compare(buf1));
    5. // 打印: 0
    6. console.log(buf1.compare(buf2));
    7. // 打印: -1
    8. console.log(buf1.compare(buf3));
    9. // 打印: -1
    10. console.log(buf2.compare(buf1));
    11. // 打印: 1
    12. console.log(buf2.compare(buf3));
    13. // 打印: 1
    14. console.log([buf1, buf2, buf3].sort(Buffer.compare));
    15. // 打印: [ <Buffer 41 42 43>, <Buffer 41 42 43 44>, <Buffer 42 43 44> ]
    16. // (相当于: [buf1, buf3, buf2])

    targetStarttargetEndsourceStartsourceEnd 可用于指定 targetbuf 中对比的范围。

    1. const buf1 = Buffer.from([1, 2, 3, 4, 5, 6, 7, 8, 9]);
    2. const buf2 = Buffer.from([5, 6, 7, 8, 9, 1, 2, 3, 4]);
    3. console.log(buf1.compare(buf2, 5, 9, 0, 4));
    4. // 打印: 0
    5. console.log(buf1.compare(buf2, 0, 6, 4));
    6. // 打印: -1
    7. console.log(buf1.compare(buf2, 5, 6, 5));
    8. // 打印: 1

    如果 targetStart < 0sourceStart < 0targetEnd > target.byteLengthsourceEnd > source.byteLength,则抛出 [ERR_OUT_OF_RANGE]。