TypedArray.prototype[@@iterator]()
@@iterator
は TypedArray
オブジェクトのプロパティで、反復可能プロトコルを実装し、型付き配列をスプレッド構文や for...of
ループのような反復可能オブジェクトを想定するほとんどの構文で利用できるようにするためのものです。配列の各要素の値を返すイテレーターを返します。
このプロパティの初期値は TypedArray.prototype.values
プロパティの初期値と同じ関数オブジェクトです。
構文
typedArray[Symbol.iterator]()
返値
TypedArray.prototype.values()
と同じ返値で、この型付き配列のすべての要素の値を返す、新しい反復可能イテレーターオブジェクトを返します。
例
for...of ループを使用した反復処理
このメソッドを直接呼び出す必要はめったにないことに注意してください。@@iterator
メソッドの存在により、型付き配列は[反復可能] (/ja/docs/Web/JavaScript/Reference/Iteration_protocols#the_iterable_protocol)となり、 for...of
ループのような反復処理構文は、ループするために自動的にこのメソッドを呼び出し、イテレータを取得します。
const arr = new Uint8Array([10, 20, 30, 40, 50]);
for (const n of arr) {
console.log(n);
}
手動でイテレーターを手繰る
反復処理を最大限に制御するために、返すイテレーターオブジェクトの next()
メソッドを手動で呼び出すことができます。
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