ホームページ  >  記事  >  ウェブフロントエンド  >  es6トラバーサーとは何ですか

es6トラバーサーとは何ですか

WBOY
WBOYオリジナル
2022-04-26 11:17:541732ブラウズ

es6 では、イテレータ (Iterator) は、さまざまなデータ構造を処理し、さまざまなデータ構造に統一されたアクセス メカニズムを提供するために使用されるインターフェイスです。データ構造が Iterator インターフェイスを展開している限り、トラバーサル操作は可能です。トラバーサーはデータ構造のメンバーを特定の順序で配置できます。

es6トラバーサーとは何ですか

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

es6 traverserとは

JavaScript本来の「コレクション」を表すデータ構造は主に配列(Array)とオブジェクト(Object)でしたが、ES6ではMapとSetが追加されました。このように 4 つのデータ コレクションがあり、ユーザーはそれらを組み合わせて独自のデータ構造を定義できます (たとえば、配列のメンバーは Map であり、Maps のメンバーはオブジェクトです)。これには、すべての異なるデータ構造を処理するための統一されたインターフェイス メカニズムが必要です。

Iterator はそのような仕組みです。これは、さまざまなデータ構造に統一されたアクセス メカニズムを提供するインターフェイスです。データ構造が Iterator インターフェイスをデプロイしている限り、トラバーサル操作を完了できます (つまり、データ構造のすべてのメンバーを順番に処理します)。

イテレータ イテレータは、さまざまなデータ構造への統合アクセス メカニズム、つまり for...of ループを提供するインターフェイスです。

Iterator インターフェイスをデプロイする限り、どのデータ構造でもトラバーサル操作を完了できます。

トラバーサーの役割

  • さまざまなデータ構造に対する統合されたシンプルなアクセス インターフェイスを提供します;

  • データ構造のメンバーを特定の順序で配置できるようにします;

  • ES6 はループの新しいトラバーサル コマンドを作成し、主に Iterator インターフェイスが使用されますfor for... 消費用 (for によって走査されるオブジェクトには、走査する前にトラバーサー インターフェイスが必要です)

イテレータの走査プロセス

  • #現在のデータ構造の開始位置を指すポインター オブジェクトを作成します。言い換えれば、トラバーサー オブジェクトは本質的にはポインター オブジェクトです。

  • ポインター オブジェクトの next メソッドを初めて呼び出すときに、ポインターをデータ構造の最初のメンバーに指すことができます。

  • ポインター オブジェクトの next メソッドを 2 回目に呼び出すと、ポインターはデータ構造の 2 番目のメンバーを指します。

  • データ構造の終わりを指すまで、ポインター オブジェクトの next メソッドを繰り返し呼び出します。

次のメソッドが呼び出されるたびに、データ構造の現在のメンバーの情報が返されます。具体的には、value と Done という 2 つのプロパティを含むオブジェクトを返します。このうち、value 属性は現在のメンバーの値であり、done 属性はトラバーサルが終了したかどうかを示すブール値です。

例は次のとおりです:

通常の実装

    function makeInterator(array){
        let startIndex=0;
        return {
            next:function(){
                return startIndex<array.length?{value:array[startIndex++],done:false}:{value:undefined,done:true}
            }
        }
    }
    let inter=makeInterator([1,2,3,4]);
    console.log(inter.next());
    console.log(inter.next());
    console.log(inter.next());
    console.log(inter.next());
    console.log(inter.next());

結果:

es6トラバーサーとは何ですか

##[関連する推奨事項:

javascriptビデオチュートリアルウェブフロントエンド]

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

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