原文: JavaScript Map – How to Use the JS .map() Function (Array Method)
配列の要素に何かしらの処理を適用して、要素を変更した新しい配列を取得したい場合があります。
ループを使って繰り返し処理をわざわざ書く代わりに、標準で用意されている Array.map()
メソッドを使うことができます。
Array.map()
メソッドを使用すると、コールバック関数を使用して配列に反復処理を行い、その要素を変更できます。コールバック関数は、配列の各要素に対して実行されます。
例えば、以下のような要素を持った配列があります。
そして、配列の各要素に対して、3
を掛ける必要があるとします。for
を使用して、以下のようなループ処理を行うことを考えるかもしれません。
しかし、実は Array.map()
メソッドを使用して、同じ結果を取得できます。以下に例を記載します。
Array.map()
メソッドは、要素に対して変更を適用するためによく使用されます。上記コードのように、特定の数字を掛けることもできますし、自身のアプリに応じて必要な処理を行うこともできます。
オブジェクトの配列に対して map() メソッドを使用する方法
例えば、以下のように友達の firstName
と lastName
を値に持つオブジェクトの配列があるとします。
以下のように、map()
メソッドを使用して、配列をループし、firstName
と lastName
の値を結合できます。
map()
メソッドでは、要素以外の値も使用できます。map()
メソッドによってコールバック関数に渡される全ての引数を確認していきましょう。
map() メソッドの引数を省略しない構文
map()
メソッドの構文は以下のようになります。
arr.map(function(element, index, array){ }, this);
コールバック関数である function()
が配列の各要素に呼ばれます。map()
メソッドは引数に、現在処理している要素の値である element
、添字である index
、また処理を実行している配列自体である array
を渡します。
引数 this
はコールバック関数の中で使用されます。デフォルトでは、その値は undefined
となっています。
例えば、this
の値を数値 80
に変更する方法を以下に記載します。
console.log()
を使用して、他の引数の確認もできます。
以上が Array.map()
メソッドに関する必要な情報です。大抵、コールバック関数で使用される引数は element
だけで、残りの引数は省略されることが多くあります。私が普段取り組んでいるプロジェクトでもそうなっています。
このチュートリアルをお読みくださりありがとうございます。
私が書いた他の JavaScript チュートリアル how to sum an array of objects (配列のオブジェクトの値を足す方法) や methods to find a palindrome string (回文の文字列を探すためのメソッド) も役に立つかもしれません。これらは、JavaScript でたびたび質問される問題に関する記事です。
また、Web 開発のチュートリアル (主に JavaScript 関連) について無料ニュースレターを配信しています。