ホームページ >ウェブフロントエンド >フロントエンドQ&A >JavaScriptの反復因子と反復性は何ですか?
JavaScriptでは、反復因子とiterablesは、配列、文字列、より複雑なデータ構造などのデータの収集を横断するために使用される基本的な概念です。
反復性は、反復することができるオブジェクトです。つまり、要素を1つずつ通過できることを意味します。 JavaScriptで反復可能であるため、 @@iterator
メソッドSymbol.iterator
実装する必要があります。呼び出されると、このメソッドはオブジェクトのイテレーターを返す必要があります。
たとえば、配列と文字列はJavaScriptに組み込まれた反復可能です。これらのloop for...of
を使用して、それらの要素を繰り返すことができます。
<code class="javascript">const array = [1, 2, 3, 4, 5]; for (const value of array) { console.log(value); // Outputs: 1, 2, 3, 4, 5 }</code>
一方、イテレーターは、反復性を反復している場所を追跡するオブジェクトです。 Iteratorオブジェクトには、次のプロパティを持つオブジェクトを返すnext()
メソッドが必要です。 value
、シーケンスの次の値であり、繰り返しが終了したdone
どうかを示すブール値です。
このような反復器を手動で使用できます。
<code class="javascript">const array = [1, 2, 3, 4, 5]; const iterator = array[Symbol.iterator](); console.log(iterator.next()); // { value: 1, done: false } console.log(iterator.next()); // { value: 2, done: false } console.log(iterator.next()); // { value: 3, done: false }</code>
これら2つの概念間の区別を理解することは、JavaScriptでの効果的なデータ操作に不可欠です。
アレイの@@iterator
メソッドによって返されたiteratorオブジェクトでnext()
メソッドを手動で呼び出すことにより、反復器を使用して配列をループできます。これがこれを行う方法の段階的な例です。
<code class="javascript">const array = [10, 20, 30, 40, 50]; const iterator = array[Symbol.iterator](); let result = iterator.next(); while (!result.done) { console.log(result.value); // Outputs: 10, 20, 30, 40, 50 result = iterator.next(); }</code>
このアプローチにより、反復プロセスを細かく制御できます。また、 for...of
ループを使用することもできます。これは、アレイを介してループを内部的に使用します。
<code class="javascript">const array = [10, 20, 30, 40, 50]; for (const value of array) { console.log(value); // Outputs: 10, 20, 30, 40, 50 }</code>
for...of
loopは、より便利で一般的に使用される方法であり、反復可能性を反復します。
JavaScriptの反復可能な反復剤とイテレーターの主な違いは、反復プロセス中の役割と機能にあります。
Symbol.iterator
メソッドがあり、イテレーターを返します。反復可能な目的は、その要素に順番にアクセスする方法を提供することです。next()
メソッドを提供します。 next()
への各呼び出しは、 value
とdone
プロパティを持つオブジェクトを返します。これらの概念の簡単な例は次のとおりです。
<code class="javascript">// An array is an iterable const array = [1, 2, 3]; // Getting an iterator from the iterable const iterator = array[Symbol.iterator](); // Using the iterator console.log(iterator.next()); // { value: 1, done: false } console.log(iterator.next()); // { value: 2, done: false } console.log(iterator.next()); // { value: 3, done: false } console.log(iterator.next()); // { value: undefined, done: true }</code>
要約すると、反復可能なものはイテレーターを取得するメカニズムを提供しますが、イテレーターは反復可能な連続した要素を生成することにより反復を実行します。
JavaScriptには、反復可能ないくつかの組み込みデータ型が含まれています。ここにいくつかの例があります:
for...of
loopを使用して、配列の要素を繰り返すことができます。<code class="javascript">const fruits = ['apple', 'banana', 'cherry']; for (const fruit of fruits) { console.log(fruit); // Outputs: apple, banana, cherry }</code>
<code class="javascript">const message = "Hello"; for (const char of message) { console.log(char); // Outputs: H, e, l, l, o }</code>
for...of
loopは、キー価値のエントリを繰り返します。<code class="javascript">const map = new Map([['a', 1], ['b', 2], ['c', 3]]); for (const [key, value] of map) { console.log(key, value); // Outputs: a 1, b 2, c 3 }</code>
for...of
loopは、セットの値を繰り返します。<code class="javascript">const set = new Set([1, 2, 3, 4, 5]); for (const value of set) { console.log(value); // Outputs: 1, 2, 3, 4, 5 }</code>
これらの組み込みの反復可能性により、言語が提供する反復メカニズムを使用して、JavaScriptのデータの収集を処理するのが簡単になります。
以上がJavaScriptの反復因子と反復性は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。