recursal/MDN huggingface dataset:
Intl.RelativeTimeFormat.prototype.formatToParts()
=================================================

**`Intl.RelativeTimeFormat.prototype.formatToParts()`** メソッドは、ロケールを考慮したカスタム書式設定に使用できる相対時間書式を部品単位で表すオブジェクトの配列 (`Array`) を返します。

試してみましょう
--------

構文
--


```js
RelativeTimeFormat.formatToParts(value, unit);
```

### 引数

`value`

国際化された相対時間のメッセージに使用する数値です。


`unit`

国際化された相対時間のメッセージに使用する単位です。利用可能な値は、 "`year`", "`quarter`", "`month`", "`week`", "`day`", "`hour`", "`minute`", "`second`" です。複数形も許容されています。

### 返値

書式化された相対時間を部品単位で含むオブジェクトの配列 (`Array`) です。

解説
--

`Intl.RelativeTimeFormat.prototype.formatToParts` メソッドは、書式化メソッドのバージョンの一つで、書式化された数値を他の周囲のテキストから分離し、それぞれの構成部品に分解した、オブジェクトの「部分」を表すオブジェクトの配列を返すものです。これらのオブジェクトには二つのプロパティがあります。 type は `NumberFormat` の formatToParts 型で、値は出力の構成要素である文字列です。もし "part" が `NumberFormat` から来たものであれば、書式化された単位を示す unit プロパティを持ちます。

例
-

### formatToParts の使用


```js
const rtf = new Intl.RelativeTimeFormat("en", { numeric: "auto" });

// Format relative time using the day unit
rtf.formatToParts(-1, "day");
// > [{ type: "literal", value: "yesterday"}]

rtf.formatToParts(100, "day");
// > [{ type: "literal", value: "in " },
// > { type: "integer", value: "100", unit: "day" },
// > { type: "literal", value: " days" }]
```

仕様書
---

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-Intl.RelativeTimeFormat.prototype.formatToParts |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Intl.RelativeTimeFormat`
Intl.RelativeTimeFormat.prototype.format()
==========================================

**`Intl.RelativeTimeFormat.prototype.format()`** メソッドは `value` や `unit` を、この `Intl.RelativeTimeFormat` オブジェクトのロケールと整形オプションに従って整形します。

試してみましょう
--------

構文
--


```js
relativeTimeFormat.format(value, unit);
```

### 引数

`value`

国際化された相対時間のメッセージに使用する数値です。


`unit`

国際化された相対時間のメッセージに使用する単位です。利用可能な値は、 "`year`", "`quarter`", "`month`", "`week`", "`day`", "`hour`", "`minute`", "`second`" です。複数形も許容されています。

解説
--

`format` ゲッター関数は、この `Intl.RelativeTimeFormat` (en-US) オブジェクトのロケールと整形オプションに従って値や単位を整形し、文字列に格納します。

例
-

### 基本的な format の使い方

以下の例は、英語を使用した相対時間のフォーマッターの生成方法を示しています。


```js
// ロケールで既定値を明確に指定して
// 相対時間フォーマッターを作成
const rtf = new Intl.RelativeTimeFormat("en", {
  localeMatcher: "best fit", // other values: "lookup"
  numeric: "always", // other values: "auto"
  style: "long", // other values: "short" or "narrow"
});

// 負の値 (-1) を使った相対時間の書式化
rtf.format(-1, "day");
// > "1 day ago"

// 正の値 (1) を使った相対時間の書式化
rtf.format(1, "day");
// > "in 1 day"
```

### auto オプションの使用

`numeric:auto` オプションが渡された場合は、 `1 day ago` や `in 1 day` の代わりに `yesterday` や `tomorrow` の文字列が生成されます。これにより、出力に数値が含まれなくなることがあります。


```js
// ロケールで既定値を明確に指定して
// 相対時間フォーマッターを作成
const rtf = new Intl.RelativeTimeFormat("en", { numeric: "auto" });

// 負の値 (-1) を使った相対時間の書式化
rtf.format(-1, "day");
// > "yesterday"

// 正の値 (1) を使った相対時間の書式化
rtf.format(1, "day");
// > "tomorrow"
```

仕様書
---

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-Intl.RelativeTimeFormat.prototype.format |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Intl.RelativeTimeFormat`
Intl.ListFormat.supportedLocalesOf()
====================================

**`Intl.ListFormat.supportedLocalesOf()`** メソッドは、指定したロケールのうち、ランタイムの既定のロケールに代替する必要なくリストの書式化に対応しているロケールを含む配列を返します。

構文
--


```js
Intl.ListFormat.supportedLocalesOf(locales);
Intl.ListFormat.supportedLocalesOf(locales, options);
```

### 引数

`locales`

BCP 47 言語タグを持つ文字列、またはそのような文字列の配列です。 `locales` 引数の一般的な形式については、 Intl のページを参照してください。

`options` 省略可

以下のプロパティを持つ可能性があるオブジェクトです。

`localeMatcher`

使用するロケールの照合アルゴリズムです。指定可能な値は "`lookup`" および "`best fit`" で、既定値は "`best fit`" です。このオプションの詳細は、 Intl のページを参照してください。


### 返値

指定したロケールタグのサブセットを表す文字列の配列で、ランタイムの既定のロケールで代替する必要なくリストの書式化に対応されているものを含みます。

解説
--

`locales` で提供されている言語タグのサブセットを含む配列を返します。返される言語タグは、ランタイムがリストの書式化に対応しているロケールで、使用しているロケール照合アルゴリズムで一致しているとみなされているものです。

例
-

### supportedLocalesOf() の使用

リストの書式化でインドネシア語とドイツ語に対応しており、バリ語に対応していないランタイムを想定すると、 `supportedLocalesOf` はインドネシア語とドイツ語の言語タグを変更せずに返しますが、 `pinyin` の照合はリストの書式化には関係なく、インドネシア語でも使用されません。ここでの `lookup` アルゴリズムの仕様に注意してください — バリ語話者のほとんどはインドネシア語も理解しているので、 `best fit` のマッチャーはインドネシア語がバリ語に適切に一致すると判断し、バリ語の言語タグも返すかもしれません。


```js
const locales = ["ban", "id-u-co-pinyin", "de-ID"];
const options = { localeMatcher: "lookup" };
console.log(Intl.ListFormat.supportedLocalesOf(locales, options).join(", "));
// → "id-u-co-pinyin, de-ID"
```

仕様書
---

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-Intl.ListFormat.supportedLocalesOf |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Intl.ListFormat`
Intl.ListFormat.prototype.formatToParts()
=========================================

**`Intl.ListFormat.prototype.formatToParts()`** メソッドは、ロケールを考慮した値のリストの書式化で使用できる様々な部分を表すオブジェクトの配列 (`Array`) を返します。

試してみましょう
--------

構文
--


```js
formatToParts(list);
```

### 引数

`list`

ロケールに従って書式化する反復可能オブジェクト、例えば配列 (`Array`) です。

### 返値

リストから書式された部品を含むコンポーネントの配列 (`Array`) です。

解説
--

`Intl.ListFormat.prototype.format()` が、（渡されたロケールとスタイルのオプションに応じて）リストの書式化された文字列を返すのに対し、 `formatToParts()` は、書式化されたされた文字列のさまざまなコンポーネントの配列を返します。

結果として得られる配列の各要素には、 `type` と `value` の 2 つのプロパティがあります。 `type` プロパティはリストの値を指す "`element`" か、言語的な構成要素を指す "`literal`" かのどちらかです。 `value` プロパティはトークンの内容を文字列で指定します。

書式化に使用されるロケールとスタイルのオプションは、 `Intl.ListFormat` インスタンスを構築する際に与えられたものです。

例
-

### formatToParts の使用


```js
const fruits = ["Apple", "Orange", "Pineapple"];
const myListFormat = new Intl.ListFormat("en-GB", {
  style: "long",
  type: "conjunction",
});

console.table(myListFormat.formatToParts(fruits));
// [
// { "type": "element", "value": "Apple" },
// { "type": "literal", "value": ", " },
// { "type": "element", "value": "Orange" },
// { "type": "literal", "value": ", and " },
// { "type": "element", "value": "Pineapple" }
// ]
```

仕様書
---

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-Intl.ListFormat.prototype.formatToParts |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Intl.ListFormat`
* `Intl.ListFormat.prototype.format()`
* `Intl.RelativeTimeFormat.prototype.formatToParts()`
* `Intl.NumberFormat.prototype.formatToParts()`
* `Intl.DateTimeFormat.prototype.formatToParts()`
Intl.ListFormat.prototype.format()
==================================

**`format()`** メソッドは、リストの言語固有の表現を文字列で返します。

試してみましょう
--------

構文
--


```js
format();
format(list);
```

### 引数

`list`

Array などの反復可能オブジェクトです。

### 返値

リストのすべての要素を表現する、言語に依存した文字列表現です。

解説
--

**`format()`** メソッドは、 `Intl.ListFormat` オブジェクトで提供された引数に基づいて書式化された文字列を返します。 `locales` と `options` 引数で `format()` の動作をカスタマイズし、アプリケーションがリストを書式化する言語の慣習を指定することができます。

例
-

### format の使用

以下の例では、英語を使用したリストのフォーマッターの作り方を紹介します。


```js
const list = ["Motorcycle", "Bus", "Car"];

console.log(
  new Intl.ListFormat("en-GB", { style: "long", type: "conjunction" }).format(
    list,
  ),
);
// > Motorcycle, Bus and Car

console.log(
  new Intl.ListFormat("en-GB", { style: "short", type: "disjunction" }).format(
    list,
  ),
);
// > Motorcycle, Bus or Car

console.log(
  new Intl.ListFormat("en-GB", { style: "narrow", type: "unit" }).format(list),
);
// > Motorcycle Bus Car
```

仕様書
---

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-Intl.ListFormat.prototype.format |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Intl.ListFormat`
Intl.ListFormat.prototype.resolvedOptions()
===========================================

**`Intl.ListFormat.prototype.resolvedOptions()`** メソッドは、現在の `Intl.ListFormat` オブジェクトの構築時に計算されたロケールとスタイル整形オプションを反映したプロパティを持つ新しいオブジェクトを返します。

試してみましょう
--------

構文
--


```js
listFormat.resolvedOptions();
```

### 返値

指定された `Intl.ListFormat` オブジェクトの構築時に計算されたロケールと整形オプションを反映したプロパティを持つオブジェクトです。

解説
--

`resolvedOptions()` から返されるオブジェクトには、以下のプロパティがあります。

`locale`

実際に使用したロケールの BCP 47 言語タグ。このロケールにつながる入力 BCP 47 言語タグに Unicode 拡張値が要求された場合、要求されたキーと値のペアのうち、このロケールで対応しているものが `locale` に含まれます。

`style`

コンストラクターの `options` 引数の中でこのプロパティに指定された値、または既定値 ("`long`") がです。この値は、"`long`"、"`short`"、"`narrow`" のいずれかです。

`type`

コンストラクターの `options` 引数の中でこのプロパティに指定された値、または既定値 ("`conjunction`") がです。この値は、"`conjunction`"、"`disjunction`"、"`unit`" のいずれかです。

例
-

resolvedOptions の使用
-------------------


```js
const deListFormatter = new Intl.ListFormat("de-DE", { style: "short" });

const usedOptions = de.resolvedOptions();
console.log(usedOptions.locale); // "de-DE"
console.log(usedOptions.style); // "short"
console.log(usedOptions.type); // "conjunction" (the default value)
```

仕様書
---

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-Intl.ListFormat.prototype.resolvedoptions |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Intl.ListFormat`
* `Intl.NumberFormat.prototype.resolvedOptions()`
* `Intl.Collator.prototype.resolvedOptions()`
* `Intl.DateTimeFormat.prototype.resolvedOptions()`
* `Intl.PluralRules.prototype.resolvedOptions()`
Intl.Segmenter() コンストラクター
=========================

**`Intl.Segmenter()`** コンストラクターは、ロケールに依存したテキスト分割を可能にする `Intl.Segmenter` オブジェクトを生成します。

試してみましょう
--------

構文
--


```js
new Intl.Segmenter();
new Intl.Segmenter(locales);
new Intl.Segmenter(locales, options);
```


**メモ:** `Intl.Segmenter()` は `new` を使用してのみ構築可能です。`new` を使わずに呼び出そうとすると `TypeError` が発生します。

### 引数

`locales` 省略可

BCP 47 の言語タグを持つ文字列、またはそのような文字列の配列。引数 `locales` の一般的な形式と解釈については、`Intl` のページを参照してください。

`options` 省略可

以下のプロパティの一部または全部を持つオブジェクト。

`granularity` 省略可

文字列。使用可能な値は以下の通り。

`"grapheme"` (default)

ロケールに応じた書記素クラスター（ユーザーが認識する文字）の境界で、入力を分割します。

`"word"`

ロケールに応じた単語の境界で、入力を分割します。

`"sentence"`

ロケールに応じた文の境界で、入力を分割します。


`localeMatcher` 省略可

使用するロケールマッチングアルゴリズム。使用できる値は以下の通り。

`"best fit"` (default)

ランタイムは、ルックアップアルゴリズムの結果よりも適したロケールを選択する可能性があります。

`"lookup"`

BCP 47 Lookup algorithm を使用して、`locales` からロケールを選択します。`locales` に含まれる各ロケールについて、ランタイムは最初にサポートされるロケールを返します（場合によっては、サポートされるロケールを見つけるために、与えられたロケールタグのサブタグの制限を取り除きます。つまり、`locales` として `"de-CH"` を指定すると、`"de"` はサポートされているが `"de-CH"` はサポートされていない場合、`"de"` を使用することになる可能性があります）。


### 返値

新しい `Intl.Segments` のインスタンスです。

例
-

### 基本的な使い方

次の例は、日本語を使って文字列中の単語を数えるものです（`String` のメソッドで文字列を分割すると不正確な結果が得られます）。


```js
const text = "吾輩は猫である。名前はたぬき。";
const japaneseSegmenter = new Intl.Segmenter("ja-JP", { granularity: "word" });
console.log(
  [...japaneseSegmenter.segment(text)].filter((segment) => segment.isWordLike)
    .length,
);
// logs 8 as the text is segmented as '吾輩'|'は'|'猫'|'で'|'ある'|'。'|'名前'|'は'|'たぬき'|'。'
```

仕様書
---

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-intl-segmenter-constructor |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
Intl.Segmenter.prototype.resolvedOptions()
==========================================

**`Intl.Segmenter.prototype.resolvedOptions()`** メソッドは、この `Intl.Segmenter` オブジェクトの初期化時に計算されたロケールおよび粒度のオプションを反映したプロパティを持つ新しいオブジェクトを返します。

試してみましょう
--------

構文
--


```js
resolvedOptions();
```

### 引数

なし。

### 返値

与えられた `Intl.Segmenter` オブジェクトの初期化時に計算されたロケールおよび照合順序のオプションを反映したプロパティを持つ新しいオブジェクトです。

解説
--

生成されたオブジェクトは以下のプロパティを持ちます。

`locale`

実際に使用されるロケールの BCP 47 言語タグ。初期化のための BCP 47 言語タグに Unicode 拡張値が含まれていた場合、要求され、このロケールに対応しているキーと値のペアが `locale` に含まれる。

`granularity`

オプション引数でこのプロパティに指定された値、またはデフォルト値。

例
-

### 基本的な使い方


```js
const spanishSegmenter = new Intl.Segmenter("es", { granularity: "sentence" });
const options = spanishSegmenter.resolvedOptions();
console.log(options.locale); // "es"
console.log(options.granularity); // "sentence"
```

### デフォルトの granularity


```js
const spanishSegmenter = new Intl.Segmenter("es");
const options = spanishSegmenter.resolvedOptions();
console.log(options.locale); // "es"
console.log(options.granularity); // "grapheme"
```

### locale のフォールバック


```js
const banSegmenter = new Intl.Segmenter("ban");
const options = banSegmenter.resolvedOptions();
console.log(options.locale);
// "fr" on a runtime where the Balinese locale
// is not supported and French is the default locale
console.log(options.granularity); // "grapheme"
```

仕様書
---

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-intl.segmenter.prototype.resolvedoptions |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
Intl.Segmenter.prototype.segment()
==================================

**`Intl.Segmenter.prototype.segment()`** メソッドは、この `Intl.Segmenter` オブジェクトのロケールおよび粒度に従って文字列を分割します。

試してみましょう
--------

構文
--


```js
segment(input);
```

### 引数

`input`

分割するテキストを `String` で指定します。

### 返値

入力文字列のセグメントを含む、反復可能な新しい `Segments` オブジェクトです。

例
-


```js
// Create a locale-specific word segmenter
const segmenter = new Intl.Segmenter("fr", { granularity: "word" });

// Use it to get an iterator over the segments of a string
const input = "Moi ? N'est-ce pas ?";
const segments = segmenter.segment(input);

// Use that for segmentation
for (const { segment, index, isWordLike } of segments) {
  console.log(
    "segment at code units [%d, %d]: «%s»%s",
    index,
    index + segment.length,
    segment,
    isWordLike ? " (word-like)" : "",
  );
}
// logs
// segment at code units [0, 3]: «Moi» (word-like)
// segment at code units [3, 4]: « »
// segment at code units [4, 5]: «?»
// segment at code units [5, 6]: « »
// segment at code units [6, 11]: «N'est» (word-like)
// segment at code units [11, 12]: «-»
// segment at code units [12, 14]: «ce» (word-like)
// segment at code units [14, 15]: « »
// segment at code units [15, 18]: «pas» (word-like)
// segment at code units [18, 19]: « »
// segment at code units [19, 20]: «?»
```

仕様書
---

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-intl.segmenter.prototype.segment |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
Intl.Segmenter.supportedLocalesOf()
===================================

**`Intl.Segmenter.supportedLocalesOf()`** メソッドは、指定したロケールのうち、ランタイムのデフォルトロケールにフォールバックすることなくサポートされているものを含む配列を返します。

試してみましょう
--------

構文
--


```js
supportedLocalesOf(locales);
supportedLocalesOf(locales, options);
```

### 引数

`locales`

BCP 47 の言語タグを持つ文字列、またはそのような文字列の配列。引数 `locales` の一般的な形式と解釈については、`Intl` のページを参照してください。

`options` 省略可

以下のプロパティを持つ可能性があるオブジェクト。

`localeMatcher`

使用するロケールマッチングアルゴリズム。使用可能な値は `"lookup"` および `"best fit"` で、デフォルトは `"best fit"` です。このオプションの詳細については、`Intl` のページを参照ください。


### 返値

指定したロケールタグのサブセットを表す文字列の配列で、ランタイムのデフォルトロケールにフォールバックすることなくセグメンテーションでサポートされるものです。

例
-

### supportedLocalesOf() の使用方法

実行環境がリスト形式でインドネシア語とドイツ語をサポートし、バリ語をサポートしないと仮定すると、`supportedLocalesOf` はインドネシア語とドイツ語の言語タグを変更せずに返します。`pinyin` の照合順序はインドネシア語のセグメンテーションに関係なく、またインドネシア語に特化したドイツ語はないためサポートされません。ここで `"lookup"` アルゴリズムの仕様に注意してください。`"best fit"` マッチでは、バリ島のほとんどの住民がインドネシア語を理解するため、インドネシア語がバリ島の言語に適切に一致すると判断し、バリ島の言語タグも返すことがあります。


```js
const locales = ["ban", "id-u-co-pinyin", "de-ID"];
const options = { localeMatcher: "lookup" };
console.log(Intl.Segmenter.supportedLocalesOf(locales, options).join(", "));
// → "id-u-co-pinyin, de-ID"
```

仕様書
---

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-intl.segmenter.supportedlocalesof |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
Intl.Segments
=============

**`Intl.Segments`** のインスタンスは、テキスト文字列のセグメントを反復可能なコレクションとして保持します。`Intl.Segmenter` オブジェクトの `segment()` メソッドをコールすると、このインスタンスが返されます。

試してみましょう
--------

インスタンスメソッド
----------

`Segments.prototype.containing()`

指定されたインデックスのコードユニットを含む元の文字列のセグメントを記述したオブジェクトを返します。

`Segments.prototype[@@iterator]()`

セグメントを反復処理するためのイテレーターを返します。

仕様書
---

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-segments-objects |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
Intl.Segments.prototype[@@iterator]()
=====================================

**`[@@iterator]()`** メソッドは、iterable プロトコルの一部で、`Intl.Segmenter` オブジェクトのエントリーを反復処理できる新しいイテレーターオブジェクトを返します。各エントリーは、オブジェクトとして返されます。

試してみましょう
--------

構文
--


```js
segments[Symbol.iterator];
```


利用できるイテレーター関数は、iterable プロトコルのページで説明したように、`.next()` の 1 つです。

### 返値

新しいイテレーターオブジェクト。

例
-


```js
const segmenter = new Intl.Segmenter("fr", { granularity: "word" });
const input = "Moi ? N'est-ce pas ?";
const segments = segmenter.segment(input);
const iterator = segments[Symbol.iterator]();

let result = iterator.next();

while (!result.done) {
  console.log(result.value);
  result = iterator.next();
}

/\* Logs
{segment: 'Moi', index: 0, input: "Moi ? N'est-ce pas ?", isWordLike: true}
{segment: ' ', index: 3, input: "Moi ? N'est-ce pas ?", isWordLike: false}
{segment: '?', index: 4, input: "Moi ? N'est-ce pas ?", isWordLike: false}
{segment: ' ', index: 5, input: "Moi ? N'est-ce pas ?", isWordLike: false}
{segment: "N'est", index: 6, input: "Moi ? N'est-ce pas ?", isWordLike: true}
{segment: '-', index: 11, input: "Moi ? N'est-ce pas ?", isWordLike: false}
{segment: 'ce', index: 12, input: "Moi ? N'est-ce pas ?", isWordLike: true}
{segment: ' ', index: 14, input: "Moi ? N'est-ce pas ?", isWordLike: false}
{segment: 'pas', index: 15, input: "Moi ? N'est-ce pas ?", isWordLike: true}
{segment: ' ', index: 18, input: "Moi ? N'est-ce pas ?", isWordLike: false}
{segment: '?', index: 19, input: "Moi ? N'est-ce pas ?", isWordLike: false}
\*/
```

仕様書
---

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-%segmentsprototype%-@@iterator |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* Iteration protocols
* `Array.prototype[@@iterator]()`
Intl.Segments.prototype.containing()
====================================

**`Intl.Segments.containing()`** メソッドは、指定されたインデックスのコードユニットを含む文字列中のセグメントを記述したオブジェクトを返します。

試してみましょう
--------

構文
--


```js
containing(codeUnitIndex);
```

### 引数

`codeUnitIndex` 省略可

元の入力文字列におけるコードユニットのインデックスを指定する数値。省略した場合のデフォルトは `0` となります。

### 返値

元の文字列のセグメントを記述するオブジェクトで以下のプロパティを持ちます。与えられたインデックス値が範囲外の場合は `undefined` となります。

`segment`

元の入力文字列から抽出されたセグメントを含む文字列。

`index`

セグメントを開始する元の入力文字列のコードユニットのインデックス。

`input`

セグメント化された完全な入力文字列。

`isWordLike`

`granularity` が `"word"` の場合のみブール値となり、それ以外は `undefined` です。`granularity` が `"word"` の場合、`isWordLike` は、セグメントが単語のようなもの（すなわち、文字／数字／英字／その他）である場合に `true`、それ以外の場合に `false` となります。

例
-


```js
// ┃0 1 2 3 4 5┃6┃7┃8┃9 ← code unit index
// ┃A l l o n s┃-┃y┃!┃ ← code unit
const input = "Allons-y!";

const segmenter = new Intl.Segmenter("fr", { granularity: "word" });
const segments = segmenter.segment(input);
let current = undefined;

current = segments.containing();
// → { index: 0, segment: "Allons", isWordLike: true }

current = segments.containing(4);
// → { index: 0, segment: "Allons", isWordLike: true }

current = segments.containing(6);
// → { index: 6, segment: "-", isWordLike: false }

current = segments.containing(current.index + current.segment.length);
// → { index: 7, segment: "y", isWordLike: true }

current = segments.containing(current.index + current.segment.length);
// → { index: 8, segment: "!", isWordLike: false }

current = segments.containing(current.index + current.segment.length);
// → undefined
```

仕様書
---

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-%segmentsprototype%.containing |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
Intl.NumberFormat.supportedLocalesOf()
======================================

**`Intl.ListFormat.supportedLocalesOf()`** メソッドは、ランタイムの既定のロケールで代替する必要なく数値の書式で対応されているものを含む配列を返します。

試してみましょう
--------

構文
--
```

Intl.NumberFormat.supportedLocalesOf(locales[, options])
```

### 引数

`locales`

BCP 47 言語タグを持つ文字列、またはそのような文字列の配列です。 `locales` 引数の一般的な形式については、 Intl のページを参照してください。

`options`

省略可能です。以下のプロパティを持つことがあるオブジェクトです。

`localeMatcher`

使用するロケールの一致アルゴリズムです。指定可能な値は `lookup` および `best fit` で、既定値は `best fit` です。このオプションの詳細は、 Intl のページを参照してください。


### 返値

指定したロケールタグのサブセットを表す文字列の配列で、ランタイムの既定のロケールで代替する必要なく数値の書式で対応されているものを含みます。

解説
--

`locales` で提供されている言語タグのサブセットを含む配列を返します。返される言語タグは、ランタイムが数値のロケールに対応しているもので、使用しているロケール照合アルゴリズムで一致しているとみなされているものです。

例
-

### supportedLocalesOf() の使用

数値の書式でインドネシア語とドイツ語に対応しており、バリ語に対応していないランタイムを想定すると、 `supportedLocalesOf` はインドネシア語とドイツ語の言語タグを変更せずに返しますが、 `pinyin` の照合は数値の書式には関係なく、インドネシア語でも使用されません。ここでの `lookup` アルゴリズムの仕様に注意してください — バリ語話者のほとんどはインドネシア語も理解しているので、 `best fit` のマッチャーはインドネシア語がバリ語に適切に一致すると判断し、バリ語の言語タグも返すかもしれません。


```js
var locales = ["ban", "id-u-co-pinyin", "de-ID"];
var options = { localeMatcher: "lookup" };
console.log(Intl.NumberFormat.supportedLocalesOf(locales, options).join(", "));
// → "id-u-co-pinyin, de-ID"
```

仕様書
---

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-intl.numberformat.supportedlocalesof |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Intl.NumberFormat`
Intl.NumberFormat.prototype.resolvedOptions()
=============================================

**`Intl.NumberFormat.prototype.resolvedOptions()`** メソッドは、この `NumberFormat` オブジェクトの初期化時に計算されたロケールと数値整形オプションを反映したプロパティを持つ新しいオブジェクトを返します。

試してみましょう
--------

構文
--
```

numberFormat.resolvedOptions()
```

### 返値

この `NumberFormat` オブジェクトの初期化時に計算されたロケールと数値整形オプションを反映したプロパティを持つ新しいオブジェクトです。

解説
--

返されるオブジェクトには以下のプロパティがあります。

`locale`

実際に使用したロケールの BCP 47 言語タグ。このロケールにつながる入力 BCP 47 言語タグに Unicode 拡張値が要求された場合、要求されたキーと値のペアのうち、このロケールで対応しているものが `locale` に含まれます。

`numberingSystem`

もし存在すれば、 `options` 引数でこのプロパティに指定された値、または Unicode 拡張キーの `"nu"` を使って要求された値、または既定として設定される値です。

`notation`

`options` 引数でこのプロパティに指定された値、または既定として設定される `standard` です。

`compactDisplay`

`options` 引数でこのプロパティに指定された値、または既定として設定される `short` です。

このプロパティは `notation` が "compact" に設定されている場合のみ存在します。

`signDisplay`

`options` 引数でこのプロパティに指定された値、または既定として設定される `auto` です。

`useGrouping`

`options` 引数でこのプロパティに指定された値、または既定として設定される値。

`currency`, `currencyDisplay`

`options` 引数でこのプロパティに指定された値、または既定として設定される値。`style`が`"currency"`の場合のみ、これらのプロパティは存在しています。

次の２つのプロパティのグループのうちどちらかのみが含まれています。:

`minimumIntegerDigits`, `minimumFractionDigits`, `maximumFractionDigits`

`options` 引数でプロパティに対して提供されるか既定で設定される値。 `minimumSignificantDigits` または `maximumSignificantDigits` が `options` 引数で提供されなかった場合のみ、これらのプロパティは存在しています。

`minimumSignificantDigits`, `maximumSignificantDigits`

`options`引数でプロパティに対して提供されるかデフォルトとして設定される値。 これらのプロパティのうち少なくとも１つが`options`引数で提供された場合のみ、これらのプロパティは存在しています。

例
-

### resolvedOptions メソッドの使用


```js
var de = new Intl.NumberFormat("de-DE");
var usedOptions = de.resolvedOptions();

usedOptions.locale; // "de-DE"
usedOptions.numberingSystem; // "latn"
usedOptions.notation; // "standard"
usedOptions.signDisplay; // "auto"
usedOption.style; // "decimal"
usedOptions.minimumIntegerDigits; // 1
usedOptions.minimumFractionDigits; // 0
usedOptions.maximumFractionDigits; // 3
usedOptions.useGrouping; // true
```

仕様書
---

| Specification |
| --- |
| ECMAScript Internationalization API Specification # sec-intl.numberformat.prototype.resolvedoptions |

ブラウザーの互換性
---------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

関連情報
----

* `Intl.NumberFormat`