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

JavaScriptのmap()メソッドは、配列の各要素に対して指定された関数を適用し、その結果から新しい配列を作成するための強力なメソッドです。このメソッドを使用すると、元の配列を変更せずに新しい配列を生成できます。本記事では、map()メソッドの基本的な使い方から応用例まで詳しく解説します。

目次

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

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

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

map()メソッドは、新しい配列を返します。新しい配列の各要素は、callback関数の戻り値に対応します。

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

各要素に対して関数を適用する

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

const newArray = array.map(element => element * 2);

console.log(newArray); // 出力: [2, 4, 6, 8, 10]

この例では、配列の各要素に対して2を掛けた結果を含む新しい配列を作成しています。

インデックスを使用する

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

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

const newArray = array.map((element, index) => `${index}: ${element}`);

console.log(newArray); // 出力: ['0: a', '1: b', '2: c']

この例では、各要素にそのインデックスを付けた文字列を生成しています。

オリジナル配列の参照

map()メソッドのコールバック関数には、第3引数としてオリジナルの配列を取ることができます。

const array = [1, 2, 3];

const newArray = array.map((element, index, arr) => element + arr.length);

console.log(newArray); // 出力: [4, 5, 6]

この例では、各要素に配列の長さを足した新しい配列を生成しています。

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

オブジェクトの配列を別の形式に変換する

map()メソッドは、オブジェクトの配列を別の形式に変換するのにも便利です。

const users = [
  { firstName: 'John', lastName: 'Doe' },
  { firstName: 'Jane', lastName: 'Smith' }
];

const userNames = users.map(user => `${user.firstName} ${user.lastName}`);

console.log(userNames); // 出力: ['John Doe', 'Jane Smith']

この例では、ユーザーオブジェクトの配列をフルネームの配列に変換しています。

深い配列の操作

多次元配列に対して操作を行うこともできます。

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

const newArray = array.map(subArray => subArray.map(element => element * 2));

console.log(newArray); // 出力: [[2, 4], [6, 8], [10, 12]]

この例では、2次元配列の各要素に対して操作を行い、新しい2次元配列を生成しています。

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

  • map()メソッドは、元の配列を変更せず、新しい配列を返します。
  • callback関数が配列の各要素に対して実行されるため、パフォーマンスに影響を与える可能性があります。大規模な配列に対しては注意が必要です。
  • map()メソッドは、配列の空の要素に対してはcallback関数を実行しません。

まとめ

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

目次