【JavaScript】ArrayクラスのforEach()メソッドについて

JavaScriptのforEach()メソッドは、配列の各要素に対して指定された関数を一度ずつ実行するための便利なメソッドです。このメソッドを使用すると、配列の各要素に対して繰り返し処理を簡単に行うことができます。本記事では、forEach()メソッドの基本的な使い方から応用例まで詳しく解説します。

目次

ArrayクラスのforEach()メソッドの基本構文

forEach()メソッドの基本的な構文は以下の通りです:

array.forEach(callback(element, index, array), thisArg);
  • callback: 各要素に対して実行される関数。以下の引数を受け取ります:
    • element: 現在処理されている要素。
    • index (オプション): 現在処理されている要素のインデックス。
    • array (オプション): forEach()メソッドが呼び出された配列。
  • thisArg (オプション): callbackが参照するthisの値。

forEach()メソッドは配列の各要素に対してcallbackを一度ずつ実行し、undefinedを返します。

ArrayクラスのforEach()メソッドの基本的な使い方

各要素をコンソールに出力する

const array = [1, 2, 3, 4, 5];

array.forEach(element => {
  console.log(element);
});
// 出力: 
// 1
// 2
// 3
// 4
// 5

この例では、配列の各要素をコンソールに出力しています。

インデックスを使用する

forEach()メソッドのコールバック関数には、第2引数として要素のインデックスを取ることができます。

const array = ['a', 'b', 'c'];

array.forEach((element, index) => {
  console.log(`Index: ${index}, Element: ${element}`);
});
// 出力:
// Index: 0, Element: a
// Index: 1, Element: b
// Index: 2, Element: c

この例では、各要素のインデックスとその値をコンソールに出力しています。

コールバック関数内でthisを使用する

forEach()メソッドの第2引数にthisArgを指定することで、コールバック関数内でthisを使用することができます。

const context = {
  multiplier: 2
};

const array = [1, 2, 3];

array.forEach(function(element) {
  console.log(element * this.multiplier);
}, context);
// 出力:
// 2
// 4
// 6

この例では、contextオブジェクト内のmultiplierプロパティを使って、各要素に対して乗算を行い、その結果をコンソールに出力しています。

ArrayクラスのforEach()メソッドの応用例

配列の要素を合計する

forEach()メソッドを使用して配列の要素を合計することができます。

const array = [1, 2, 3, 4, 5];
let sum = 0;

array.forEach(element => {
  sum += element;
});

console.log(sum); // 出力: 15

この例では、配列の各要素を合計しています。

配列の要素をオブジェクトのプロパティにコピーする

forEach()メソッドを使用して配列の要素をオブジェクトのプロパティにコピーすることができます。

const array = ['apple', 'banana', 'cherry'];
const obj = {};

array.forEach((element, index) => {
  obj[`fruit${index}`] = element;
});

console.log(obj); // 出力: { fruit0: 'apple', fruit1: 'banana', fruit2: 'cherry' }

この例では、配列の各要素をオブジェクトのプロパティとして追加しています。

ArrayクラスのforEach()メソッドの注意点

  • forEach()メソッドは、return文を使用してループを終了することはできません。ループを途中で終了する場合は、forループまたはsome()メソッドを使用する必要があります。
  • forEach()メソッドは、配列の要素に対して非同期処理を行う場合に注意が必要です。非同期処理が完了する前に次の反復処理が開始されるため、結果が期待通りにならないことがあります。

まとめ

forEach()メソッドは、配列の各要素に対して指定された関数を実行するための便利なツールです。この記事を参考にして、forEach()メソッドを効果的に活用してください。

目次