LESSON 23 ・ 関数
mapメソッド
mapで各要素を変換する
function square(x) {
return x * x;
}
let a = [2, 3, 5];
let b = a.map(square);
for (const x of b) {
console.log(x);
}
mapは代表的な高階メソッドです。配列の各要素に関数を適用した結果を返します。
たとえば、mapにsquareを渡すと、元の配列のすべての要素を2乗した結果を返します。
function square(x) {
return x * x;
}
let a = [2, 3, 5];
let b = a.map(square);
console.log(b);
PRACTICE
演習問題
コードを自分で書いて実行してから、答えと解説を確認しましょう。
問題1
[2, 3, 5]の各要素を2乗する関数squareを定義し、mapですべての要素を変換した結果を表示してください。
答えと解説を見る
模範解答
function square(x) {
return x * x;
}
let numbers = [2, 3, 5];
let result = numbers.map(square);
console.log(result);
mapは各要素にsquareを適用します。結果は[4, 9, 25]です。
問題2
整数を1増やす関数addOneを定義し、mapを使って[1, 4, 7]の各要素に適用した結果を表示してください。
答えと解説を見る
模範解答
function addOne(x) {
return x + 1;
}
let numbers = [1, 4, 7];
let result = numbers.map(addOne);
console.log(result);
mapへ関数addOneを渡すと、すべての要素に同じ処理が適用されます。結果は[2, 5, 8]です。
問題3
点数55、70、88のすべてに5点を加えた新しい配列をmapで作ってください。さらに、変換後の点数をすべて足し、その合計を表示してください。
答えと解説を見る
模範解答
function adjustScore(score) {
return score + 5;
}
let scores = [55, 70, 88];
let adjusted = scores.map(adjustScore);
let total = 0;
for (const score of adjusted) {
total += score;
}
console.log(total);
mapで各点数を変換してから、これまでに学んだループで合計します。変換後は60、75、93なので、合計は228です。