【JavaScriptで学ぶ基本プログラミング】数値の平均を求めてみよう!

javascript

今回はjavascriptの基本問題で、初心者の方にも取り組みやすい「数値の平均を求める」課題を解いていきたいと思います。

  • 配列操作
  • ループ処理
  • 条件分岐
  • 組み込み関数の使い方

を身につけましょう。

課題の紹介:平均値を求める関数

// 例:average([2, 4, 9, 8]) → 5.75 を返す
function average(arr) {
  if (!Array.isArray(arr) || arr.length === 0) {
    return 0;
  }
  let total = 0;
  for (let i = 0; i < arr.length; i++) {
    total += arr[i];
  }
  const avg = total / arr.length;
  return parseFloat(avg.toFixed(2));
}
  • 入力が配列でない、あるいは空配列なら 0 を返す
  • 合計を要素数で割り、小数点以下2桁に整形して返す

必要な JavaScript の基本構文

① 関数の宣言
function 関数名(引数) {
  // 処理
}

関数は特定の処理をまとめて名前を付けたもの。引数を受け取り、処理結果を返します。

② 配列の扱い
  • Array.isArray(arr):値が配列かどうかを判定
  • arr.length:配列の要素数を取得
③ 繰り返し(for)
for (let i = 0; i < arr.length; i++) {
  // arr[i] にアクセス
}

for文は指定した回数だけ処理を繰り返します。配列の各要素に対して処理を行う場合によく使います。

④ 条件分岐(if)

if文は条件によって処理を分岐させます。エッジケース(特殊なケース)の処理に便利です。

コード解説ステップ by ステップ

配列かどうかチェック

if (!Array.isArray(arr) || arr.length === 0) {
  return 0;
}
  • Array.isArray:配列判定
  • arr.length === 0:空配列判定

合計を求める

let total = 0;
for (let i = 0; i < arr.length; i++) {
  total += arr[i];
}

total に順番に加算していく

平均値を計算

const avg = total / arr.length;

合計 ÷ 要素数

小数点以下の調整

// toFixed → 文字列、parseFloat → 数値に戻す
return parseFloat(avg.toFixed(2));
  • toFixed(2):小数点以下2桁に丸めて文字列化
  • parseFloat:文字列→数値変換

登場する関数一覧

関数・メソッド役割の簡単説明
Array.isArray(arr)arr が配列か判定する
arr.length配列の要素数を取得
toFixed(n)小数点以下 n 桁に丸め、文字列で返す
parseFloat(str)文字列 str を浮動小数点数に変換

エッジケースへの対応

  • 配列でない入力 → 0 を返却
  • 空配列 → 0 を返却
  • 文字列や null が混ざる配列の場合 → 今回は動作保証外(拡張課題として型チェックを追加可能)

まとめ

プログラミングは小さく分解しながら一つずつのパーツを考えて、組み合わせていくことで実現できます。合計するにはどんな関数を使うか、小数点を二位に止めるにはどのような関数を使用するか等、実現したいことを思い描くことが大切です。

  • 問題を小さなステップに分解する
  • エッジケースを必ず考慮する
  • 関数の入出力仕様を明確にする
  • コード内にコメントを残して可読性を高める
  • 型の一貫性を保つ(数値型はtoFixedで文字列になることに注意)

次のステップとしては、

  • 最大値・最小値を求める関数
  • 中央値(メディアン)の計算
  • 数値配列のフィルタリング

のような練習問題も面白いと思います。また基礎的なjavascriptの問題を取り上げていきたいと思います!

コメント

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