今回は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の問題を取り上げていきたいと思います!
 
  
  
  
  

コメント