ユーザ用ツール

サイト用ツール


javascript:iterator

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
javascript:iterator [2014/01/08 07:50] – [Iterableオブジェクト] nullponjavascript:iterator [2015/10/24 04:28] (現在) – 削除 nullpon
行 1: 行 1:
-====== Iterator ====== 
-Iterator(イテレータ)は[[javascript:es6|ECMAScript 6]]で導入された集合オブジェクトに対して反復処理を行うオブジェクト。 
  
-===== IterableとIterator ===== 
-Array、NodeList、Set、Map等はIterableである。Iterableなオブジェクトはfor-of文で反復処理を行う事が出来る。 
- 
-<code javascript> 
-for (let i of ["a", "b", "c"]) { 
-  console.log(i);    // => "a", "b", "c" 
-} 
-</code> 
- 
-iteratorメソッドを実装している集合オブジェクトがIterable。iteratorメソッドはiteratorオブジェクトを返す。 
- 
-<code javascript> 
-console.log([1,2,3].iterator);   // => function iterator() { } 
-</code> 
- 
-nextメソッドを実装しているオブジェクトがIterator。nextメソッドは反復処理でIterableの次の要素を取り出す。 
- 
-<code javascript> 
-console.log([1,2,3].iterator().next);   // => function next() { } 
-</code> 
- 
-===== 独自の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);    // => 1, 2 
-} 
-</code> 
javascript/iterator.1389167430.txt.gz · 最終更新: 2014/01/08 07:50 by nullpon