Intl.Collator.prototype.compare()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2017.

Intl.Collator.prototype.compare() メソッドは、 2 つの文字列をこの Intl.Collator オブジェクトのソート順に従って比較します。

試してみましょう

構文

js
compare(string1, string2);

引数

string1, string2

互いに比較する文字列です。

解説

compare ゲッター関数は、 string1string2 をこの Intl.Collator オブジェクトのソート順に従って比較した結果を数値で返します。 string1string2 の前にくる場合は負の値、 string1string2 の後にくる場合は正の値、等しいとみなされる場合は 0 を返します。

配列の並べ替えにおける compare の使用

配列の並べ替えのために compare ゲッター関数を使用します。なお、この関数は、取得元の collator にバインドされているので、直接 Array.prototype.sort() に渡すことができます。

js
var a = ["Offenbach", "Österreich", "Odenwald"];
var collator = new Intl.Collator("de-u-co-phonebk");
a.sort(collator.compare);
console.log(a.join(", "));
// → "Odenwald, Österreich, Offenbach"

配列の検索における compare の使用

配列内の文字列の検索のために compare ゲッター関数を使用します。

js
var a = ["Congrès", "congres", "Assemblée", "poisson"];
var collator = new Intl.Collator("fr", {
  usage: "search",
  sensitivity: "base",
});
var s = "congres";
var matches = a.filter((v) => collator.compare(v, s) === 0);
console.log(matches.join(", "));
// → "Congrès, congres"

仕様書

Specification
ECMAScript Internationalization API Specification
# sec-intl.collator.prototype.compare

ブラウザーの互換性

BCD tables only load in the browser

関連情報