ECMAScript5は、アレイの5つの反復方法を定義します。各メソッドは、各アイテムで実行する関数と、関数を実行するスコープオブジェクト(オプション)(つまり、これに影響する値)の2つのパラメーターを受信します。これらのメソッドに渡された関数は、配列アイテムの値、配列内のアイテムの位置、および配列オブジェクト自体の3つのパラメーターを受け取ります。使用法に応じて、この関数の実行後の返品値は、メソッドの返品値に影響を与える場合とそうでない場合があります。これらの5つの反復方法は次のとおりです。
5つの反復方法すべてが2つのパラメーターを受け入れます。各アイテムで実行する関数と機能の範囲(オプション)
すべて():配列内の各アイテムで指定された関数を実行します。関数が各アイテムのtrueを返す場合、それはtrueを返します。
filter():配列内の各アイテムで指定された関数を実行します。 Trueを返すアイテムの配列を返します。
foreach():配列内の各アイテムの指定された関数を実行します。関数は値を返しません。
map():配列内の各アイテムで指定された関数を実行します。各関数呼び出しの結果で構成される関数を返します。
一部():配列内の各アイテムで指定された関数を実行します。関数がどちらに対してtrueを返す場合、それはtrueを返します
上記の方法はすべて、配列に含まれる値を変更しません。
上記の方法では、すべて()と一部()は非常に似ており、両方とも配列内のアイテムが特定の条件を満たすかどうかを照会するために使用されます。すべての()メソッドの場合、このメソッドがtrueを返す前に、渡された関数は各項目のtrueを返す必要があります。それ以外の場合、それはfalseを返します。 some()メソッドは、渡された関数が配列内のアイテムにtrueを返す限り、trueを返します。例えば:
var nums = [1,2,3,4,5,4,3,2,1]; var result = nums.every(function(item、index、array){return(item> 2);})console.info(result);上記のコードはコンソールにfalseを印刷します。
var nums = [1,2,3,4,5,4,3,2,1]; var result = nums.some(function(item、index、array){return(item> 2);})console.info(result);上記のコードは、コンソールに真の印刷を印刷します。
以下は、指定された関数を使用して、返された配列にアイテムがあるかどうかを判断するフィルター()関数の例です。たとえば、すべての値が2を超える配列を返すには、次のコードを使用できます。
var nums = [1,2,3,4,5,4,3,2,1]; var result = nums.filter(function(item、index、array){return(item> 2);})console.info(result); // [3,4,5,4,3]上記のコードは、フィルター()メソッドを呼び出すことにより、3、4、5、4、3を含む配列を返します。この方法は、特定の基準を満たすすべての配列を照会するのに非常に役立ちます。
Map()メソッドも配列を返し、この配列の各アイテムは、元の配列の対応するアイテムで着信関数を実行した結果です。たとえば、配列内の各アイテムに2を掛けてから、これらの製品の配列を返すことができます。
var nums = [1,2,3,4,5,4,3,2,1]; var result = nums.map(function(item、index、array){return item * 2;})console.info(result); // [2,4,6,8,10,8,6,4,2]Map()メソッドは、アイテムを1つずつ別の配列に含む配列を作成するのに適しています。
最後の1つはforeach()メソッドです。これは、配列内のすべてのアイテムで渡された関数を実行するだけです。このメソッドには返品値がなく、本質的にforループを使用して配列を繰り返します。次の例を参照してください。
var nums = [1,2,3,4,5,4,3,2,1]; nums.foreach(function(item、index、array){//必要な操作を実行})JSのこれらの配列メソッドは、異なる操作を実行することにより、配列タスクの処理を大幅に促進できます。
これらの反復方法をサポートするブラウザは、IE9+、Firefox2+、Safari3+、Opera9.5+、およびChromeです。
var番号= [1、2、3、4、5、4、3、2、1]; //すべて()とsome()は最も類似していますAlert(EveryResult); // false // some()var someresult = numbers.some(function(item、index、array){return item> 2;}); alert(someresult); // true //フィルターvar filterresult = numbers.filter(function(item、index、array){return item> 2;}); alert(filterResult); // [3,4,5,4,3] // map()var mapresult = numbers.map(function(item、index、array){return(item * 2);}); alert(mapResult); // [2,4,6,8,10,8,6,4,2] // foreachは、本質的にループの場合とは違いではありません。上記はこの記事に関するすべてです。 JavaScriptイテレーション方法をよりよく理解するためのヒントを提供したいと思います。