JavaScriptでforEachの使い方
forEachは、配列の要素を繰り返し取得する関数
forEachは、配列の値を繰り返し取得できる関数です。
PHPやC#で既に書き慣れた方もいるかもしれませんね。
一度の記述で、値とキーを同時に取得することが出来るため、便利な繰り返し処理となっています。
基本的な書き方
サンプルコード
var array = ['fuga', 'hoge', 'piyo']; array.forEach(function(value){ console.log(value); });
アロー関数の書き方
サンプルコード
var array = ['fuga', 'hoge', 'piyo']; array.forEach((value) => { console.log(value); });
キー(index)も取得する場合
キーも取得する場合は第二引数を設定します。
サンプルコード
var array = ['fuga', 'hoge', 'piyo']; array.forEach((value, index) => { console.log(index + ':' + value); });
forEachを使う上での注意点
JavaScriptのforEach文を使う上での注意点をまとめました。
オブジェクト(連想配列)には使用できない
JavaScriptのオブジェクトは連想配列とも言われていますが、厳密には配列ではないのでforEachによるループは使用できません。
var obj = {no : 1, name : 'Sato', age : 18}; //エラー文 → Uncaught TypeError: obj.forEach is not a function obj.forEach(function(value, index){ console.log(index + ':' + value); });
対応法として、オブジェクトや配列のキーのみを配列で取得できるObject.keysを使用してループさせることが出来ます。
サンプルコード
var obj = {no : 1, name : 'Sato', age : 18}; Object.keys(obj).forEach(function(index){ console.log(index + ':' + obj[index]); });
それか、そもそもオブジェクトのプロパティをループ対象にできるfor inなどの構文を書くのが良いでしょう。
サンプルコード
var obj = {no : 1, name : 'Sato', age : 18}; for(index in obj){ console.log(index + ':' + obj[index]); }
continue,breakが使用できない
forEachはコールバック関数なので、for文でおなじみの、処理をスキップするcontinue、処理を中断するbreakが使用できません。
ただし、continueに関しては、returnを行うことで実質的に同じ処理を行うことが出来ます。
サンプルコード
var array = ['fuga', 'hoge', 'piyo']; array.forEach(function(value, index){ if(value === 'hoge') return; console.log(index + ':' + value); });
forEachはキーと値を同時に繰り返し取得できる便利な関数ですが、for inなどの繰り返し処理と適材適所で使い分けていきましょう。
以上、JavaScriptでforEachの使い方、でした。
ディスカッション
コメント一覧
まだ、コメントがありません