JavaScript | 関数から値を返す(return文)

JavaScript JavaScript
スポンサーリンク

では「配列とreturnを組み合わせた実践的な小課題」をいくつか用意しました。少し現実的なシチュエーションを想定しているので、練習しながら「関数で処理をまとめる」感覚をつかめます。


実践的な配列の練習問題

1. 平均点を計算する関数

  • 問題: テストの点数が入った配列を受け取り、平均点を返すaverageScoreを作る。
  • 解答例:
function averageScore(scores) {
  let total = 0;
  for (let i = 0; i < scores.length; i++) {
    total += scores[i];
  }
  return total / scores.length;
}

console.log(averageScore([80, 90, 100])); // 90
JavaScript
  • 解説: 合計を出して要素数で割る。returnで平均値を返す。

2. 合格者だけを抽出する関数

  • 問題: 点数の配列を受け取り、60点以上の人だけを新しい配列にして返すgetPassListを作る。
  • 解答例:
function getPassList(scores) {
  let pass = [];
  for (let i = 0; i < scores.length; i++) {
    if (scores[i] >= 60) {
      pass.push(scores[i]);
    }
  }
  return pass;
}

console.log(getPassList([55, 70, 40, 90])); // [70, 90]
JavaScript
  • 解説: 条件に合う要素だけをpushして返す。

3. 商品の合計金額を計算する関数

  • 問題: 商品の価格が入った配列を受け取り、合計金額を返すtotalPriceを作る。
  • 解答例:
function totalPrice(prices) {
  let total = 0;
  for (let i = 0; i < prices.length; i++) {
    total += prices[i];
  }
  return total;
}

console.log(totalPrice([1200, 800, 600])); // 2600
JavaScript
  • 解説: 配列の合計を出す基本パターン。買い物の合計計算に応用できる。

4. 名前リストを整形する関数

  • 問題: 名前の配列を受け取り、すべて大文字に変換して返すformatNamesを作る。
  • 解答例:
function formatNames(names) {
  let result = [];
  for (let i = 0; i < names.length; i++) {
    result.push(names[i].toUpperCase());
  }
  return result;
}

console.log(formatNames(["taro", "hanako", "jiro"]));
// ["TARO", "HANAKO", "JIRO"]
JavaScript
  • 解説: 文字列のメソッドtoUpperCase()を利用。配列処理の基本練習にもなる。

5. 特定の文字を含む要素を探す関数

  • 問題: 文字列の配列を受け取り、特定のキーワードを含む要素だけを返すsearchKeywordを作る。
  • 解答例:
function searchKeyword(arr, keyword) {
  let result = [];
  for (let i = 0; i < arr.length; i++) {
    if (arr[i].includes(keyword)) {
      result.push(arr[i]);
    }
  }
  return result;
}

console.log(searchKeyword(["apple", "banana", "grape"], "ap"));
// ["apple", "grape"]
JavaScript
  • 解説: includes()で部分一致をチェック。検索機能の基礎になる。

✅ まとめ

  • 配列を扱うときは「繰り返し処理」と「条件分岐」を組み合わせるのが基本。
  • returnで「最終的に欲しい結果」を返すことを意識すると、関数がわかりやすくなる。

タイトルとURLをコピーしました