24 / 2788%

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

点数557088のすべてに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へ短い変換処理を直接渡してから、これまでに学んだループで合計します。変換後は607593なので、合計は228です。