JS_javascript スキルのEach、$.each、およびmapメソッドに推奨

WBOY
リリース: 2016-05-16 15:06:41
オリジナル
1448 人が閲覧しました

forEach は、ECMA5 の新しい Array メソッドの中で最も基本的なもので、トラバーサルとループです。たとえば、次の例:

[1, 2,3, 4].forEach(alert);

次の for ループと同等

var array = [1, 2, 3, 4];
for (var k = 0, length = array.length; k < length; k++) {
 alert(array[k]);
}
ログイン後にコピー

配列 ES5 の新しいメソッドでは、パラメータはすべて関数型であり、forEach メソッドの関数コールバックは 3 つのパラメータをサポートします。対応する配列のインデックス。3 番目は配列そのものです。

したがって、次のようになります:

[].forEach(function(value, index, array) {
  // ...
});
ログイン後にコピー

jQuery の $.each メソッドを比較します:

$.each([], function(index, value, array) {
  // ...
});
ログイン後にコピー

最初のパラメータと 2 番目のパラメータはまったく逆であることがわかります。間違えないように注意してください。 $.map など、後の同様のメソッドにも同じことが当てはまります。

var data=[1,3,4] ; 
var sum=0 ;
data.forEach(function(val,index,arr){
  console.log(arr[index]==val);  // ==> true
  sum+=val            
})
console.log(sum);          // ==> 8
ログイン後にコピー

地図

ここでいう地図とは「地図」ではなく「マッピング」のことです。 [].map(); 基本的な使用法は forEach メソッドと似ています。

array.map(callback,[ thisObject]);
ログイン後にコピー
コールバックのパラメータも同様です:

[].map(function(value, index, array) {
  // ...
});
ログイン後にコピー
map メソッドの機能を理解するのは難しくありません。それは「マッピング」です。つまり、元の配列が対応する新しい配列に「マッピング」されます。次の例は、数値項の 2 乗を求める例です:

var data=[1,3,4]

var Squares=data.map(function(val,index,arr){
  console.log(arr[index]==val);  // ==> true
  return val*val           
})
console.log(Squares);        // ==> [1, 9, 16]
ログイン後にコピー
注: forEach と map は新しい配列を追加するための ECMA5 メソッドであるため、IE9 より前のブラウザではまだサポートされていません (IE 様) ただし、上記の関数はすべて、forEach メソッドなどの Array プロトタイプを拡張することで実現できます。

if (typeof Array.prototype.forEach != "function") {
  Array.prototype.forEach = function() {
    /* 实现 */
  };
}
ログイン後にコピー
JS の forEach、$.each、map メソッドに関する上記の推奨事項はすべてエディターによって共有された内容であり、参考にしていただければ幸いです。また、Script Home をサポートしていただければ幸いです。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート