•原理:
•Advanced Browserは、Foreachメソッドをサポートします
構文:foreachとMAPの両方のサポート2パラメーター:1つはコールバック関数(アイテム、インデックス、リスト)とコンテキストです。
•foreach:配列内の各アイテムを繰り返すために使用します。このメソッドの実行には返品値がなく、元の配列には影響しません。
•配列にはいくつかの項目があるため、承認された匿名のコールバック関数は数回実行する必要があります。
•匿名関数が実行されるたびに、3つのパラメーター値も渡されます。配列内の現在のアイテム、現在のアイテムのインデックスインデックス、元の配列入力。
•理論的には、この方法は値を返すのではなく、配列内のすべてのアイテムを通過するだけで、元の配列を変更しません。ただし、配列のインデックスを使用して、元の配列を自分で変更できます。
•foreachメソッドのこれはaryであり、匿名のコールバック関数ではデフォルトではウィンドウです。
var ary = [12,23,24,42,1]; var res = ary.foreach(function、index、input){input [index] = item*10;})console.log(res); // - > undefined; console.log(ary); //->元の配列を変更します。•マップ:foreachに非常に似ています。各アイテムの値を配列内の繰り返し、アレイ内の各アイテムを反復させるために使用されます。
•違い:リターンリターン値は、マップコールバック関数でサポートされています。リターンとは、このアイテムを配列内のこのアイテムをその理由に変更することと同等です(元の配列に影響しない場合、元の配列のコピーをクローン化し、クローン化された配列内の対応するアイテムを変更するのと同じです)。
•それぞれまたはマップは、2番目のパラメーター値をサポートします。 2番目のパラメーターは、匿名のコールバック関数でこれを変更することを意味します。
var ary = [12,23,24,42,1]; var res = ary.map(function(item、index、input){return item*10;})console.log(res); //-> [120,230,240,420,10]; console.log(ary); //-> [12,23,24,42,1]•互換性のあるライティング方法:
•IE6-8の場合でも、IE6-8のマップであろうと(ARRAY.Prototypeに2つの方法はありません。互換性がない場合はプロトタイプ)、両方の互換性のある方法を自分でカプセル化する必要があります。コードは次のとおりです。
/*** foreach traversal array* @param callback [function] callback function; * @param Context [Object] Context; */array.prototype.myforeach = function myforeach(callback、context){context = context ||ウィンドウ; if( 'foreach' in array.prototye){this.foreach(callback、context);戻る; } // IE6-8で、(var i = 0、len = this.length; i <len; i ++){callback && callback.call(context、this [i]、i、this); }} /*** Map Traversal Array* @param Callback [function] callback function; * @param Context [Object] Context; */array.prototype.mymap = function mymap(callback、context){context = context ||ウィンドウ; if( 'map' in array.prototye){return this.map(callback、context); } // IE6-8ロジックでコールバック関数の実行を自分で書き込むvar newary = []; for(var i = 0、len = this.length; i <len; i ++){if(typeof callback === 'function'){var val = callback.call(context、this [i]、i、this); newary [newary.length] = val; }} newary;}PS:上記の記述方法にエラーがある場合は、修正してください^^
JavaScriptのArray Traversal foreach()およびMap()メソッドと互換性のあるライティングメソッドの上記の紹介は、私があなたと共有するすべてのコンテンツです。参照を提供できることを願っています。wulin.comをもっとサポートできることを願っています。