阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      Node.js Buffer buf.compare

      Node.js buf.compare(target[, targetStart[, targetEnd[, sourceStart[, sourceEnd]]]]) 版本历史

      版本变更
      v8.0.0The target parameter can now be a Uint8Array.
      v5.11.0Additional parameters for specifying offsets are supported now.
      v0.11.13新增于: v0.11.13
      • 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>

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

      • 如果 target 与 buf 相同,则返回 0。
      • 如果 target 排在 buf 前面,则返回 1。
      • 如果 target 排在 buf 后面,则返回 -1。
      const buf1 = Buffer.from('ABC');
      const buf2 = Buffer.from('BCD');
      const buf3 = Buffer.from('ABCD');
      
      console.log(buf1.compare(buf1));
      // 输出: 0
      console.log(buf1.compare(buf2));
      // 输出: -1
      console.log(buf1.compare(buf3));
      // 输出: -1
      console.log(buf2.compare(buf1));
      // 输出: 1
      console.log(buf2.compare(buf3));
      // 输出: 1
      console.log([buf1, buf2, buf3].sort(Buffer.compare));
      // 输出: [ <Buffer 41 42 43>, <Buffer 41 42 43 44>, <Buffer 42 43 44> ]
      // (相当于: [buf1, buf3, buf2])
      

      targetStart、 targetEnd、 sourceStart 与 sourceEnd 可用于指定 target 与 buf 中对比的范围。

      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));
      // 输出: 0
      console.log(buf1.compare(buf2, 0, 6, 4));
      // 输出: -1
      console.log(buf1.compare(buf2, 5, 6, 5));
      // 输出: 1
      

      更多内容请参考:Node.js Buffer 缓冲器,或者通过 点击对应菜单 进行查看;


      目录
      本文目录
      目录