TECH I.S.

JavaScript イテラブル

イテレート可能なオブジェクトは、for.ofで反復処理できるオブジェクトです。

技術的には、イテレータブルはSymbol.iteratorメソッドを実装します。


文字列の反復

for..ofループを使えば、文字列の処理を繰り返し処理することができます。

for (const x of "テックアイエス") {   // 実行されるコードブロック }

自分で試してみる»


配列の反復

for...ofループを使えば、配列の要素を繰り返し処理できます。

for (const x of [1,2,3,4,5]) {   // 実行されるコードブロック }

自分で試してみる»


JavaScript イテレーター

イテレータ プロトコルはオブジェクトから一連の値を生成する方法を定義します。

next()メソッドを実装すると、オブジェクトはイテレータとなります。 next()メソッドは、以下2つのプロパティを持つオブジェクトを返す必要があります。
  • value (次の値)
  • done (真または偽)

    value イテレータによって返される値
    (doneがtrueの場合は省略可能)
    done trueイテレータが完了した場合

    falseイテレータが新しい値を生成した場合



    ホームメイドイテラブル

    このイテレート可能な変数は、next()が呼ばれるたびに終わりのない値を返します。

    // ホームメードイテラブル function myNumbers() {   let n = 0;   return {     next: function() {       n += 10;       return {value:n, done:false};     }   }; } // イテラブルを作成 const n = myNumbers(); n.next(); // Returns 10 n.next(); // Returns 20 n.next(); // Returns 30

    自分で試してみる»

    ホームメイドイテラブルの問題:

    JavaScriptのfor..of文には対応していません。

    JavaScriptのいてレート可能オブジェクトは、Symbol.iteratorを持つオブジェクトです。

    Symbol.iteratornext()関数をを返す関数です。

    イテラブルは次のコードで繰り返すことができます。for (const x of iterable) { }

    // オブジェクトを作成 myNumbers = {}; // 反復可能にする myNumbers[Symbol.iterator] = function() {   let n = 0;   done = false;   return {     next() {       n += 10;       if (n == 100) {done = true}       return {value:n, done:done};     }   }; }
    for..ofを使用できます
    for (const num of myNumbers) {   // 実行するコード }

    自分で試してみる»

    Symbol.iterator メソッドはfor..ofによって自動的に呼び出されます。

    ただし、「手動で」行うこともできます。

    let iterator = myNumbers[Symbol.iterator](); while (true) {   const result = iterator.next();   if (result.done) break;   // 実行するコード }

    自分で試してみる»



プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細