情報アイランド

「情報を制する者は世界を制す」をモットーに様々な情報を提供することを目指すブログです。現在はプログラミング関連情報が多めですが、投資関連情報も取り扱っていきたいです。

Node.jsでバッファを比較する

バッファを比較するにはBuffer.compare関数かbuf.compare関数を使用します。

Buffer.compare関数

var comp = Buffer.compare(buf1, buf2);

第1引数に1つ目のバッファを指定します。

第2引数に2つ目のバッファを指定します。

返り値として1つ目のバッファと2つ目のバッファの大小関係を表す数値が得られます。

1つ目のバッファが2つ目のバッファより大きい場合には1が返り、小さい場合には-1が返り、同じである場合には0が返ります。

buf.compare関数

var comp = buf.compare(buf2, 0, buf2.length, 0, buf.length);

第1引数に2つ目のバッファを指定します。

第2引数に2つ目のバッファの比較の開始インデックスを指定します。この引数は指定しなくても構いません。デフォルトは0です。

第3引数に2つ目のバッファの比較の終了インデックスを指定します。この引数は指定しなくても構いません。デフォルトは2つ目のバッファの長さです。ただし、第2引数がundefinedである場合には無視されます。

第4引数に1つ目のバッファの比較の開始インデックスを指定します。この引数は指定しなくても構いません。デフォルトは0です。

第5引数に1つ目のバッファの比較の終了インデックスを指定します。この引数は指定しなくても構いません。デフォルトは1つ目のバッファの長さです。ただし、第4引数がundefinedである場合には無視されます。

返り値として1つ目のバッファと2つ目のバッファの大小関係を表す数値が得られます。

1つ目のバッファが2つ目のバッファより大きい場合には1が返り、小さい場合には-1が返り、同じである場合には0が返ります。

サンプルコード1

buffer-compare.js

var buf1 = Buffer.from([0, 1, 2, 3]);
var buf2 = Buffer.from([0, 1, 1, 1]);
var buf3 = Buffer.from([3, 2, 1, 0]);

console.log(Buffer.compare(buf1, buf1));
console.log(Buffer.compare(buf1, buf2));
console.log(Buffer.compare(buf1, buf3));
console.log(buf1.compare(buf1));
console.log(buf1.compare(buf2));
console.log(buf1.compare(buf3));
console.log(buf1.compare(buf1, 2, 3, 2, 3));
console.log(buf1.compare(buf2, 2, 3, 2, 3));
console.log(buf1.compare(buf3, 2, 3, 2, 3));

実行結果

C:\work\node>node buffer-compare.js
0
1
-1
0
1
-1
0
1
1

関連

pizyumi
プログラミング歴19年のベテランプログラマー。業務システム全般何でも作れます。現在はWeb系の技術を勉強中。
スポンサーリンク

-Node.js