などの疑問や悩みを解決してまいります。
元の配列を変更せずに、各要素に関数を適用して新しい配列を作成したり、各要素から特定のプロパティを抽出したいということは開発において多いと思います。
そんなときに役立つのがArray
のmap
メソッドです。
今回は配列の各要素に関数を適用させて新しい配列を作成するmap
の使い方について解説します。
mapメソッド
map
メソッドとは、元の配列を変更せずに、各要素に関数を適用して新しい配列を作成するメソッドです。
また各要素に処理を実行して新しい配列を作成するだけでなく、特定の値だけを抽出して新しい配列を作成するということもできます。
記述方法と活用例
map
メソッドは以下のように記述します。
配列.map(配列の値=> 処理内容)
取得元の配列要素内の値それぞれに対して処理を実行していきます。
活用例①:数値配列の各要素に対して2を掛ける
配列numbers
が持つ各値に対してelement * 2
、つまり2倍の値を取得しています。
numbers
が持つ各値に対して処理を実行しているため、結果は[2, 4, 6, 8, 10]
となります。
const numbers = [1, 2, 3, 4, 5];
const doubled = numbers.map(element => element * 2);
console.log(doubled); // 出力: [2, 4, 6, 8, 10]
活用例②:オブジェクト配列の各要素から特定のプロパティを抽出する
配列users
が持つオブジェクトに対してuser => user.name
、つまりキーname
の値を取得しています。
const users = [
{ id: 1, name: 'John' },
{ id: 2, name: 'Jane' },
{ id: 3, name: 'Jake' }
];
const userNames = users.map(user => user.name);
console.log(userNames); // 出力: ['John', 'Jane', 'Jake']
活用例③:ネストされた配列に対しての処理
配列nestedArray
が持つ各配列要素の値に対してsubArray => subArray.join(', ')
、つまり配列の全ての要素を順に連結した文字列を返しています。
const nestedArray = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
const flattened = nestedArray.map(subArray => subArray.join(', '));
console.log(flattened); // 出力: ['1, 2, 3', '4, 5, 6', '7, 8, 9']
活用例④:複数の条件に該当するオブジェクトの取得
配列products
が持つ各オブジェクトのキーprice
に対して、price: product.price * 0.9
、つまり0.9倍した状態で新たに配列を作成しています。
const products = [
{ id: 1, name: 'Laptop', price: 1000 },
{ id: 2, name: 'Phone', price: 500 },
{ id: 3, name: 'Tablet', price: 750 }
];
const discountedProducts = products.map(product => ({
...product,
price: product.price * 0.9
}));
console.log(discountedProducts);
// 出力:
// [
// { id: 1, name: 'Laptop', price: 900 },
// { id: 2, name: 'Phone', price: 450 },
// { id: 3, name: 'Tablet', price: 675 }
// ]
…product
の部分はスプレッド構文です。
products
の各オブジェクトに対して処理が実行されるときには以下のコードになっています。
const discountedProducts = products.map(product => ({
id: product.id,
name: product.name,
price: product.price * 0.9
}));
スプレッド構文について当サイトでも解説記事がありますのでぜひ参考にしてください。
-
【JavaScript】初心者向け!スプレッド構文について解説します。
続きを見る
まとめ
ここまで読んでいただきありがとうございました。本記事のまとめです。
ポイント
map
メソッドとは、元の配列を変更せずに、各要素に関数を適用して新しい配列を作成するメソッド- 各要素に処理を実行して新しい配列を作成するだけでなく、特定の値だけを抽出して新しい配列を作成するということもできる