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

The Intl.Segments.@@iterator method is part of the iterable protocol, which returns a new iterator object that can iterate over the entries in an Intl.Segmenter object. Each entry is returned as an object.

Try it

Syntax

segments[Symbol.iterator]

The one iterator function available is .next(), as described in the iterator protocol page.

Return value

A new Iterator object.

Examples

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}
*/

Specifications

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

Browser compatibility

BCD tables only load in the browser

See also