ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScriptイテレータとは何ですか

JavaScriptイテレータとは何ですか

青灯夜游
青灯夜游オリジナル
2021-12-07 17:28:071633ブラウズ

JavaScript では、イテレータは、反復プロセス用に特別に設計された独自のインターフェイスを持つ特別なオブジェクトです。すべてのイテレータ オブジェクトには、Result オブジェクトを返す next() メソッドがあります。イテレータは、コレクション内の現在の値の場所への内部ポインタを格納します。

JavaScriptイテレータとは何ですか

このチュートリアルの動作環境: Windows7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。

1. イテレータの定義:

イテレータは特別な オブジェクトであり、反復プロセスのための特別な機能を備えています。独自のインターフェイスを設計し、すべての反復子オブジェクトには next() メソッドがあり、各呼び出しは 結果オブジェクト を返します。結果オブジェクトには 2 つの属性 があります。1 つは value で、次に返される値を示します。もう 1 つは、done で、返すデータがなくなったときに true を返すブール値です。また、イテレータは、現在のコレクション内の値の位置を指す内部ポインタも保存します。next() メソッドが呼び出されるたびに、次に使用可能な値が返されます。最後の値が返される () メソッドの場合、返されたオブジェクトで行われた属性の値は true であり、属性値にはイテレータによって最終的に返された値が含まれます。この戻り値はデータ セットの一部ではありません。同様です。関数の戻り値に代入するもので、関数呼び出し処理の最後の値です 呼び出し元に情報を一度に渡す方法です 該当するデータがない場合は、unknown

を返します 2.イテレータが表示されるのはなぜですか?

背景前提:

for

ループを使用し、 も使用したはずだと思います。 null ポインター からの質問を引用します: たとえば、配列の長さはわずか 5 ですが、インデックスは 6 に達します。ロジックに少しでも誤りがあると、プログラムが正常に動作しなくなります。

イテレータが解決したい問題は次のとおりです: 同様の for ループ

プロセスを使用して解決または軽減します。変数コレクションにアクセス中にエラーが発生しました。例:

null ポインター参照

例:

for ループを使用してコレクションを走査する場合、間違いを犯しやすくなります。 forEach と同様に、空きスペースの数が減ります ポインタ参照の問題。

array.forEach(element => {
	// 此时可以不用i来操作集合了。            
});

3. js を使用して単純なイテレータを実装する

function myIterator(list) {
    let i = 0;
    return {
        next: function() {
            let done = (i >= list.length);
            let value = !done ? list[i++] : undefined;
            return {
                done: done,
                value: value
            };
        }
    };
}
これは関数定義から確認できます:

    関数の戻り値は
  • オブジェクト

    です。オブジェクトでは、キーが次にあり、値が関数です。

  • next() が呼び出されるたびに、i 1 が返され、同時にオブジェクト
  • が返されます。オブジェクトはコレクションの要素です。

    [関連する推奨事項:
  • JavaScript 学習チュートリアル

]

以上がJavaScriptイテレータとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。