LESSON 24 ・ 関数
アロー関数
アロー関数で関数を作る
let square = x => x * x;
let a = square(3);
console.log(a);
アロー関数(arrow function)を使えば、その場で関数を作ることができます。このコードでは、パラメータxを2乗して返す関数を作り、それをsquareに代入しています。
mapにアロー関数を渡す
mapのためにわざわざ関数を定義するのは面倒です。
let a = [2, 3, 5];
let b = a.map(x => x * x);
console.log(b);
アロー関数を使うと、mapで行いたい処理を直接渡すことができます。
let a = [2, 3, 5];
let b = a.map(x => x + 1);
console.log(b);
2乗ではなく、1足したいならこのようになります。
PRACTICE
演習問題
コードを自分で書いて実行してから、答えと解説を確認しましょう。
問題1
整数を2乗して返す関数を、アロー関数で作って変数squareに代入してください。square(4)の結果を表示してください。
答えと解説を見る
模範解答
let square = x => x * x;
console.log(square(4));
名前を付けて関数を定義する代わりに、その場で関数を作って変数へ代入できます。square(4)の結果は16です。
問題2
アロー関数をmapへ直接渡し、[1, 4, 7]の各要素に1を足した結果を表示してください。
答えと解説を見る
模範解答
let numbers = [1, 4, 7];
let result = numbers.map(x => x + 1);
console.log(result);
短い変換処理なら、別に関数を定義せず、その場で関数を作ってmapへ渡せます。結果は[2, 5, 8]です。
問題3
点数55、70、88のすべてに5点を加えた新しい配列を、アロー関数をmapへ直接渡して作ってください。さらに、変換後の点数をすべて足し、その合計を表示してください。
答えと解説を見る
模範解答
let scores = [55, 70, 88];
let adjusted = scores.map(score => score + 5);
let total = 0;
for (const score of adjusted) {
total += score;
}
console.log(total);
mapへ短い変換処理を直接渡してから、これまでに学んだループで合計します。変換後は60、75、93なので、合計は228です。