TypedArray.prototype[@@iterator]()

Baseline Widely available

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

[@@iterator]()TypedArray インスタンスのプロパティで、反復可能プロトコルを実装し、型付き配列をスプレッド構文for...of ループのような反復可能オブジェクトを想定するほとんどの構文で利用できるようにするためのものです。この型付き配列の各要素の値を返す配列イテレーターオブジェクトを返します。

このプロパティの初期値は TypedArray.prototype.values プロパティの初期値と同じ関数オブジェクトです。

試してみましょう

構文

js
typedArray[Symbol.iterator]()

引数

なし。

返値

TypedArray.prototype.values() と同じ返値で、この型付き配列のすべての要素の値を返す、新しい反復可能イテレーターオブジェクトを返します。

for...of ループを使用した反復処理

このメソッドを直接呼び出す必要はめったにないことに注意してください。@@iterator メソッドの存在により、型付き配列は反復可能となり、 for...of ループのような反復処理構文は、ループするために自動的にこのメソッドを呼び出し、イテレータを取得します。

js
const arr = new Uint8Array([10, 20, 30, 40, 50]);
for (const n of arr) {
  console.log(n);
}

手動でイテレーターを手繰る

反復処理を最大限に制御するために、返すイテレーターオブジェクトの next() メソッドを手動で呼び出すことができます。

js
const arr = new Uint8Array([10, 20, 30, 40, 50]);
const arrIter = arr[Symbol.iterator]();
console.log(arrIter.next().value); // 10
console.log(arrIter.next().value); // 20
console.log(arrIter.next().value); // 30
console.log(arrIter.next().value); // 40
console.log(arrIter.next().value); // 50

仕様書

Specification
ECMAScript Language Specification
# sec-%typedarray%.prototype-@@iterator

ブラウザーの互換性

BCD tables only load in the browser

関連情報