【JS応用|初心者向け】JavaScriptで「リスト表示」を劇的に簡単にする!Intl.ListFormat活用術

導入:なぜIntl.ListFormatが必要なのか?

Webサイトで「りんご、みかん、ぶどう」のように、複数の項目を並べて表示したい場面はよくあります。しかし、単にカンマで繋ぐだけでは、「りんご、みかん、ぶどう」のように、最後の項目とそれ以外を区別する「および」や「と」といった接続詞を動的に扱うのが面倒ではないでしょうか。
Intl.ListFormatを使えば、言語や文化に合わせた「自然なリスト表示」をJavaScriptだけで簡単に実現できます。翻訳対応(多言語化)が必要なプロジェクトでも非常に役立つAPIです。

基礎知識:Intl.ListFormatとは?

Intl.ListFormatは、配列の要素を特定の言語ルールに従って文字列に結合するための組み込みオブジェクトです。
例えば、日本語では「A、B、およびC」としますが、英語では「A, B, and C」となります。このように、言語ごとに異なる「接続詞」や「区切り文字」のルールを、ブラウザが自動的に判断して適用してくれます。

実装:使い方の基本手順

実装は非常にシンプルで、3つのステップで行います。
1. Intl.ListFormatのインスタンスを作成する(言語を指定)。
2. formatメソッドを呼び出し、配列を渡す。
3. 戻り値として、接続詞が含まれた文字列を受け取る。

サンプルプログラム:コピーして試してみよう

以下のコードをブラウザのコンソール(F12キー)に貼り付けて、実行結果を確認してみてください。

// 1. 日本語のリスト形式を定義
const jaList = new Intl.ListFormat('ja-JP', { style: 'long', type: 'conjunction' });
const items = ['りんご', 'みかん', 'ぶどう'];

// 配列を自然な日本語のリスト文字列に変換
console.log('日本語:', jaList.format(items)); 
// 結果: "りんご、みかん、およびぶどう"

// 2. 英語のリスト形式を定義
const enList = new Intl.ListFormat('en-US', { style: 'long', type: 'conjunction' });

// 配列を自然な英語のリスト文字列に変換
console.log('英語:', enList.format(items)); 
// 結果: "りんご, みかん, and ぶどう"

// 3. 「または」を使った選択肢リストも作成可能
const orList = new Intl.ListFormat('ja-JP', { type: 'disjunction' });
console.log('選択肢:', orList.format(['A', 'B', 'C']));
// 結果: "A、B、またはC"

応用・注意点:現場で役立つポイント

1. オプションの使い分け
typeオプションには「conjunction(列挙)」と「disjunction(選択)」があります。これらを使い分けることで、「A、B、およびC」というリスト形式と、「A、B、またはC」という選択形式を柔軟に切り替えられます。

2. ブラウザ対応状況
現在の主要なモダンブラウザ(Chrome, Firefox, Safari, Edgeなど)はすべて対応しています。IE11など古いブラウザをサポートする必要がある場合は、Polyfill(補完ライブラリ)の導入を検討してください。

3. パフォーマンスと注意点
非常に軽量なAPIですが、大量のリストをループ内で毎回生成するとメモリを消費します。頻繁に使う場合は、インスタンスを一度変数に保存しておき、使い回すのがパフォーマンス向上のコツです。

このAPIを使うだけで、UIの細かい「言語的な違和感」を解消し、よりプロフェッショナルなアプリケーションを作ることができます。ぜひ活用してみてください。

タイトルとURLをコピーしました