JavaScriptにおけるイテレータの呼び出し
イテレータの各連続的な呼び出しは、 特別な構造のオブジェクトを返さなければなりません。 その構造を見てみましょう。 以下の配列があるとします:
let arr = [1, 2, 3];
配列のイテレータを変数に取得します:
let iter = arr[Symbol.iterator]();
この変数には、メソッド next を持つオブジェクトが
格納されています。このメソッドは、
要素の値を含むキー value と、
反復が終了したかどうかの情報を含むキー done
を持つオブジェクトを返します:
console.log( iter.next() ); // {value: 1, done: false}
メソッド next を連続して呼び出すと、
毎回次の要素が返されます:
console.log( iter.next() ); // {value: 1, done: false}
console.log( iter.next() ); // {value: 2, done: false}
console.log( iter.next() ); // {value: 3, done: false}
要素がなくなると、以下の値が表示されます:
console.log( iter.next() ); // {value: undefined, done: true}
コレクション Map のイテレータを取得してください。
コレクションの要素がなくなるまで、
それを連続して呼び出してください。
コレクション NodeList のイテレータを取得してください。
コレクションの要素がなくなるまで、
それを連続して呼び出してください。
コレクション HTMLCollection のイテレータを取得してください。
コレクションの要素がなくなるまで、
それを連続して呼び出してください。