こんにちは。
大阪でフロントエンド兼マネージャー兼Webチームの採用担当をしている筆者です🧑💻
配列はJavaScript(以下JS)を理解する上では必須の項目です。
JavaScriptの配列で使うメソッド多くあります。
それらのメソッドは便利でコードの可読性を上げてくれるのですが、覚えるのが大変です。
そこで重要なメソッドだけにスポットをあて短くまとめてシリーズにして紹介しています。
第3弾の今回はmapメソッドを紹介します。
ちなみに第2弾の記事はこちらから!
【5分で理解②(配列編)】JavaScriptの配列のfilterメソッドで配列要素を”絞り込む”
map()の基本文法
const scores = [10, 20, 40, 30, 60];
const mapGrammer = scores.map((cur) => cur * 10)
console.log(mapGrammer) //👉 [100, 200, 400, 300, 600]
curには配列内の数字が順番に入り、cur * 10を繰り返し計算し、新たな配列を作ります。
最初は10 × 10=100
次に20 × 10=200
次に40× 10=400,,,,と計算されていき
最終の実行結果は[10, 200, 400, 300, 600]となります。
map()には第2引数、第3引数も入れる事ができますが今回は割愛します。
map()は何をしてくれる?
mapメソッドは上で説明した計算だけではなく、指定のデータを抽出して新たな配列を作ることも可能です。
これをみてください。
const members = [
{ name: 'Natsumi', old: 21, gender: 'female', height: 158 },
{ name: 'Takashi', old: 18, gender: 'male', height: 180 },
{ name: 'Hitomi', old: 17, gender: 'female', height: 163 },
{ name: 'Jun', old: 32, gender: 'male', height: 165 },
];
const mapMember = members.map((member) => member.name)
console.log(mapMember)
実施結果は、
['Natsumi', 'Takashi', 'Hitomi', 'Jun']
となります。
これは、members配列の中にあるオブジェクトのキーを指定してその値を集めて新たに配列を作っています。
参考:map() vs forEach文
配列内を計算するという点ではforEachも同じですが、大きな違いはforEachは新たに配列を作りません。
const scores = [10, 20, 40, 30, 60];
const testForEach = scores.forEach((cur) => cur * 10)
console.log(testForEach) //👉 undefined
forEachは「returnで返すことはありません」
したがって、下記のように一回限りの計算で終了します。
const scores = [10, 20, 40, 30, 60];
scores.forEach((cur) => console(cur * 10)); // 100, 200, 400, 300, 600 ⇦配列ではない
計算や特定の要素を取り出して、新たな配列にするのであればmap()
その場限りの計算や要素の取り出しであればforEach()
と使い分けをしましょう。
今回は以上となります。
皆さんのJSの理解に繋がっていれば幸いです。
次回も楽しみにしていてください。
▼▼あわせて読みたいの記事▼▼
【5分で理解②】JavaScriptの配列のfilterメソッドで配列要素を"絞り込む"