javascript forEachループで爆速コーディング

javascript のループ処理には forEach がオススメです。

書き方

var array1 = ['a', 'b', 'c'];

array1.forEach(function(element) {
  console.log(element);
});

// expected output: "a"
// expected output: "b"
// expected output: "c"

引用:Array.prototype.forEach() – JavaScript | MDN – Mozilla

意味

配列.forEach(コールバック関数)

という体系になっていて、コールバック関数の位置には普通の関数を配置すると機能してくれます。上記の例では無名関数でしたので普通の関数とは違く見えましたが、名前のある関数でも、関数を外に出しても機能します。試しにコールバック関数を外に出した次のコードを実行してみます。

var array1 = ['a', 'b', 'c'];

array1.forEach(aaa);

function aaa(element) {
  console.log(element);
}

// expected output: "a"
// expected output: "b"
// expected output: "c"

無事に動きました。なお、理解するために分解するのはとても有効な手法ですが、実際にコーディングする際には時短のため、分解せずに最初に書いた方法で記述することをお勧めします。一度理解してしまえば、わざわざ分解しなくてもスッと頭に入ってくるかと思います。

まとめ

私はこれまでjavascriptでループ処理を書くときは拡張for文を使用していましたが、Javaの記述方法と微妙に異なるために不安になりググることがしばしばありました。これが重なると時間がかかってしまいます。それならばということでjavascriptではJavaの拡張for文とは全く異なったループ処理を探していたのです。けれども終了条件が無いときには素のfor文は書きたくない、ということで見つけたのがforEachでした。