ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript の forEach メソッドについての深い理解

JavaScript の forEach メソッドについての深い理解

yulia
リリース: 2018-09-14 15:22:39
オリジナル
1575 人が閲覧しました

私は最近 JavaScript を徹底的に勉強しているので、いくつかの知識ポイントをまとめました。この記事では主に JavaScript の配列の forEach メソッドについて説明します。必要な方は参考にして学習していただければ幸いです。

forEach メソッドは、有効な値を含む配列内の項目ごとにコールバック関数を 1 回実行します (daleta メソッドなどを使用して) 削除された項目や初期化されていない項目はスキップされます。 (ただし、未定義項目であることを示すものは除きます);
メソッドはコールバック関数を受け取り、コールバック関数は 3 つのパラメーター (現在の項目、インデックス、および操作の配列) を受け取ります。

var array1 = ['a', 'b', 'c'];
array1.forEach(function(element) {
  console.log(element);
});
// a
// b
// c
ログイン後にコピー

forEach() メソッドは、配列の要素ごとに指定された関数を 1 回実行します。

ケース: for ループが forEach に変換される

変換前

const items = ['item1', 'item2', 'item3'];
const copy = [];
for (let i=0; i<items.length; i++) {
  copy.push(items[i])
}
ログイン後にコピー

変換後

const items = [&#39;item1&#39;, &#39;item2&#39;, &#39;item3&#39;];
const copy = [];
items.forEach(function(item){
  copy.push(item)
});
ログイン後にコピー

結果はすべて

copy: ["item1", "item2", "item3"]
ログイン後にコピー

Case : 配列の内容を出力します

function logArrayElements(element, index, array) {
    console.log("a[" + index + "] = " + element);
}
// 注意索引2被跳过了,因为在数组的这个位置没有项
[2, 5, ,9].forEach(logArrayElements);
// a[0] = 2
// a[1] = 5
// a[3] = 9
[2, 5,"" ,9].forEach(logArrayElements);
// a[0] = 2
// a[1] = 5
// a[2] = 
// a[3] = 9
[2, 5, undefined ,9].forEach(logArrayElements);
// a[0] = 2
// a[1] = 5
// a[2] = undefined
// a[3] = 9
let xxx;
// undefined
[2, 5, xxx ,9].forEach(logArrayElements);
// a[0] = 2
// a[1] = 5
// a[2] = undefined
// a[3] = 9
ログイン後にコピー

forEach 走査される範囲は、コールバックが初めて呼び出される前に決定されます。 forEach を呼び出した後に配列に追加された項目には、コールバックはアクセスしません。既存の値が変更された場合、コールバックに渡される値は、それぞれを反復処理した時点の値です。削除されたアイテムはスキャンされません。アクセスされた要素が反復中に (たとえば、shift() を使用して) 削除される場合、後続の要素はスキップされます。コードを見てください。

var words = ["one", "two", "three", "four"];
words.forEach(function(word) {
  console.log(word);
  if (word === "two") {
    words.shift();
  }
});
// one
// two
// four
ログイン後にコピー

上記のコードを理解できるかどうかはわかりません。 2 つを実行すると、配列の最初の項目が削除されます。ただし、前の項目を削除すると、元のインデックスが 1 の項目は 0 になります。0 はすでに実行されているため、実行側では範囲が走査されません。 by forEach はコールバック関数が初めて呼び出される前に決定されており、削除されたアイテムは走査されません。

例を見てみましょう。少し変更してください:

var words = ["one", "two", "three","", "four"];
words.forEach(function(word) {
words =  ["one", "two", "three","fix", "four"];
  console.log(word);
  if (word === "two") {
    words.shift();
 }
});
// one
// two
// three
//  
// four
ログイン後にコピー

上記のインデックスが 3 の場合、出力結果は空です。一度再割り当てした場合でも、もう一度試してください。言葉の結果:

console.log(words)
// ["one", "two", "three", "fix", "four"]
ログイン後にコピー

上記は私の要約です。上司がさらに追加できることを願っています。

以上がJavaScript の forEach メソッドについての深い理解の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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