JavaScriptにおけるイテレータの呼び出し

イテレータの各連続的な呼び出しは、 特別な構造のオブジェクトを返さなければなりません。 その構造を見てみましょう。 以下の配列があるとします:

javascriptlet arr = [1, 2, 3];

配列のイテレータを変数に取得します:

javascriptlet iter = arr[Symbol.iterator]();

この変数には、メソッド next を持つオブジェクトが 格納されています。このメソッドは、 要素の値を含むキー value と、 反復が終了したかどうかの情報を含むキー done を持つオブジェクトを返します:

javascriptconsole.log( iter.next() ); // {value: 1, done: false}

メソッド next を連続して呼び出すと、 毎回次の要素が返されます:

javascriptconsole.log( iter.next() ); // {value: 1, done: false}
console.log( iter.next() ); // {value: 2, done: false}
console.log( iter.next() ); // {value: 3, done: false}

要素がなくなると、以下の値が表示されます:

javascriptconsole.log( iter.next() ); // {value: undefined, done: true}
Задание 1

コレクション Map のイテレータを取得してください。 コレクションの要素がなくなるまで、 それを連続して呼び出してください。

Задание 2

コレクション NodeList のイテレータを取得してください。 コレクションの要素がなくなるまで、 それを連続して呼び出してください。

Задание 3

コレクション HTMLCollection のイテレータを取得してください。 コレクションの要素がなくなるまで、 それを連続して呼び出してください。