【Node.js24.x】String::localeCompare()メソッドの使い方
localeCompareメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
localeCompareメソッドは、ある文字列と別の文字列を、現在設定されている言語や地域(ロケール)の並べ替え規則に基づいて比較し、その順序関係を示す数値を返すメソッドです。ロケールとは、ユーザーの言語や地域の設定を指し、日付の表示形式や通貨、そして文字列の並べ替え順序などに影響を与えます。
このメソッドは、参照元の文字列が比較対象の文字列よりも辞書順で前に来る場合は負の値を、後に来る場合は正の値を、そして両者が等しい場合は0を返します。この戻り値を利用することで、文字列の配列を正しい辞書順にソートする際に非常に役立ちます。
JavaScriptの通常の比較演算子(<や>など)は、文字のユニコード値に基づいた機械的な比較を行います。しかし、localeCompareメソッドは、言語固有の並べ替えルール(例えば、特定の文字の組み合わせやアクセント付き文字など)を考慮するため、より自然で正確な辞書順での並べ替えを実現します。
このメソッドには、比較に使用するロケールを明示的に指定する引数や、大文字・小文字の区別を無視するかどうかといった詳細な比較オプションを指定する引数も用意されています。これにより、多言語対応のアプリケーションで、各言語のユーザーが期待する文字列の並べ替えを正確に実装することが可能になります。
構文(syntax)
1const baseString = "hello"; 2const compareString = "world"; 3 4baseString.localeCompare(compareString);
引数(parameters)
compareString, locales = undefined, options = undefined
- compareString: string: 比較対象となる文字列
- locales: string | string[] | undefined: オプションのロケール(言語・地域)を指定します。指定しない場合は、実行環境のデフォルトロケールが使用されます。
- options: Intl.CollatorOptions | undefined: オプションで、文字列の比較方法を詳細に設定するためのオブジェクトです。
戻り値(return)
number
2つの文字列を現在のロケール(地域設定)に基づいて比較した結果を表す数値を返します。比較結果は、-1(引数文字列が対象文字列より小さい)、0(2つの文字列が等しい)、または1(引数文字列が対象文字列より大きい)のいずれかになります。