ecmascript:iterator
差分
このページの2つのバージョン間の差分を表示します。
| 次のリビジョン | 前のリビジョン | ||
| ecmascript:iterator [2015/10/24 04:28] – 作成 nullpon | ecmascript:iterator [2025/09/08 15:40] (現在) – 削除 nullpon | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| - | ====== Iterator ====== | ||
| - | Iterator(イテレータ)は[[javascript: | ||
| - | ===== IterableとIterator ===== | ||
| - | Array、NodeList、Set、Map等はIterableである。Iterableなオブジェクトはfor-of文で反復処理を行う事が出来る。 | ||
| - | |||
| - | <code javascript> | ||
| - | for (let i of [" | ||
| - | console.log(i); | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | iteratorメソッドを実装している集合オブジェクトがIterable。iteratorメソッドはiteratorオブジェクトを返す。 | ||
| - | |||
| - | <code javascript> | ||
| - | console.log([1, | ||
| - | </ | ||
| - | |||
| - | nextメソッドを実装しているオブジェクトがIterator。nextメソッドは反復処理でIterableの次の要素を取り出す。 | ||
| - | |||
| - | <code javascript> | ||
| - | console.log([1, | ||
| - | </ | ||
| - | |||
| - | ===== 独自のIteratorを実装 ===== | ||
| - | オブジェクトの値を繰り返し取得するイテレータを実装する | ||
| - | |||
| - | <code javascript> | ||
| - | function values(obj) { | ||
| - | var i = 0; | ||
| - | var keys = Object.keys(obj); | ||
| - | return { | ||
| - | iterator: function() { | ||
| - | return this; | ||
| - | }, | ||
| - | next: function() { | ||
| - | if (i < keys.length) { | ||
| - | return { value: obj[keys[i++]] }; | ||
| - | } else { | ||
| - | return { done: true }; | ||
| - | } | ||
| - | } | ||
| - | } | ||
| - | } | ||
| - | |||
| - | var obj = {a:1, b:2}; | ||
| - | for (let i of values(obj)) { | ||
| - | console.log(i); | ||
| - | } | ||
| - | </ | ||
ecmascript/iterator.1445660921.txt.gz · 最終更新: by nullpon