支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡


JavaScriptのforEachメソッドとは?

JavaScriptにはforEachメソッドというものがあります。

JavaScriptには配列というものがあり、forEachメソッドは配列に格納されたデータを繰り返し処理により一度で処理を行いたい時に使用します

ここではJavaScriptのforEachメソッドについて説明します。

forEachメソッドの使用方法

forEachメソッドの基本構文

let 配列名 = [配列データ];
配列名.forEach(コールバック関数){
	//処理内容
}

コールバック関数にはvalue、index、arrayの3つの値を指定できます。

valueは配列データの値、indexは配列のインデックス番号、arrayは現在処理している配列となります。

forEachメソッドの注意点

forEachメソッドは繰り返し処理を中断するbreakやcontinueは使用出来ません

使用してもエラーとなってしまいます。

JavaScriptにはfor文という繰り返し処理を行えるものがあります。

繰り返し処理中に中断を行いたい場合はfor文を使用します。

コールバック関数にvalueを指定し値を取得する

サンプルコード

'use strict'

let array = [
 
    {place: 'Tokyo', name: '東京'},
    {place: 'Osaka', name: '大阪'},
    {place: 'Sendai', name: '仙台'},
    {place: 'Nagoya', name: '名古屋'},
 
];

array.forEach(function(value) {
 
    console.log(value.place);
    console.log(value.name);
 
});
実行結果

Tokyo
東京
Osaka
大阪
Sendai
仙台
Nagoya
名古屋

このサンプルコードはforEachメソッドを使用しオブジェクト構造の中身をJavaScriptのコンソール上に表示しています。

console.log(value.place)はplaceの値を、 console.log(value.name)はnameの値を表示します。

配列がオブジェクト構造でなかった場合はconsole.log(value)で配列の中の値をJavaScriptのコンソール上に表示させることができます。

コールバック関数にvalue,indexの2つを措定して使用する

サンプルコード

'use strict'

let array = [ 1, 2, 3, 4, 5, 6, 7, 8 ];
 
array.forEach(function(value,index) {
  
    if(index>3) console.log(value);
 
});
実行結果

5
6
7
8

このサンプルコードではif(index>3)と条件式に指定することでインデックス番号の4からの値をconsole.log(value)で繰り返し出力しています。

そのためJavaScriptのコンソール上に実行結果が表示されます。

コールバック関数にvalue,index,arrayの3つを措定して使用する

サンプルコード

'use strict'

let array = [ 1, 2, 3, 4, 5, 6, 7, 8 ];
 
array.forEach(function(value,index,array) {
  
    if(index>3) array[index] = 5;
 
});

console.log(array);
実行結果

[1, 2, 3, 4, 5, 5, 5, 5]

コールバック関数の引数「array」は、現在処理している配列の元データが格納されており、元のarrayとindexを合わせることで値の変更ができます。

if(index>3) array[index] = 5;とすることでインデックス番号の4からの値を全て5にしています。

そのためJavaScriptのコンソール上に実行結果が表示されます。

forEachメソッドの第2引数を指定する

let 配列名 = [配列データ];
配列名.forEach(コールバック関数,オブジェクト){
	//処理内容
}

上記のように第2引数にオブジェクトを指定することができます。

処理内容内でオブジェクト内にアクセスするにはthisを使用します。

サンプルコード

'use strict'

let list = {
 
    '東京': 'Tokyo',
    '大阪': 'Osaka',
    '仙台': 'Sendai',
    '名古屋': 'Nagoya'
}
 
let array = ['東京','大阪','仙台','名古屋'];

array.forEach(function(value) {
 
   console.log(value + 'のローマ字表記は'+ this[value] +'です');
 
},list);
実行結果

東京のローマ字表記はTokyoです
大阪のローマ字表記はOsakaです
仙台のローマ字表記はSendaiです
名古屋のローマ字表記はNagoyaです

サンプルコードのforEachの第2引数にはオブジェクトであるlistを指定しています。

処理内容内でthisを使用することでオブジェクトであるlistを参照することが可能となります

console.log(value + 'のローマ字表記は'+ this[value] +'です')このコードのvalueは配列であるarrayの値を取得します。

this[value]はlistの値を取得します。

そのためJavaScriptのコンソール上に実行結果が表示されます。

ラムダ式

forEachメソッドはアロー関数を使用するラムダ式で記述することができます。

配列名.forEach(変数名 => 処理内容)

サンプルコード

'use strict'

let array = ['東京', '大阪', '名古屋'];

array.forEach(value => console.log(value));
実行結果

東京
大阪
名古屋

このコードのvalueは配列の中身の1つという意味です。

また、このコードではvalueという変数名にしていますが、変数名はどんなものでも大丈夫です。

2行以上の処理を記述するには{}で囲います。

配列名.forEach(変数名 => {
//処理内容1
//処理内容2
});

まとめ

JavaScriptのforEachメソッドについて説明しました。

forEachメソッドは配列を繰り返し処理するものです。

また繰り返し処理するものでfor文がありますが、少し違うところもありますので注意が必要です。