es6 では、イテレータ (Iterator) は、さまざまなデータ構造を処理し、さまざまなデータ構造に統一されたアクセス メカニズムを提供するために使用されるインターフェイスです。データ構造が Iterator インターフェイスを展開している限り、トラバーサル操作は可能です。トラバーサーはデータ構造のメンバーを特定の順序で配置できます。
このチュートリアルの動作環境: Windows 10 システム、ECMAScript バージョン 6.0、Dell G3 コンピューター。
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());
結果:
##[関連する推奨事項:javascriptビデオチュートリアル、ウェブフロントエンド]
以上がes6トラバーサーとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。