JavaScript | 最大値とそのインデックス(位置)を返す関数

JavaScript JavaScript
スポンサーリンク

では「最大値と最小値の両方を返す関数」を作ってみましょう。
これは 複数の比較を同時に管理する 練習になります。


目標

  • 配列を順番に調べる
  • 最大値と最小値を同時に更新していく
  • { max: 最大値, min: 最小値 } の形で返す

✅ 模範解答(for文バージョン)

function findMaxAndMin(arr) {
  if (arr.length === 0) return null; // 空配列ならnull

  let max = arr[0];
  let min = arr[0];

  for (let i = 1; i < arr.length; i++) {
    if (arr[i] > max) {
      max = arr[i];
    }
    if (arr[i] < min) {
      min = arr[i];
    }
  }

  return { max, min };
}

// 実行例
console.log(findMaxAndMin([3, 7, 2, 9, 5]));
// { max: 9, min: 2 }
JavaScript

✅ 模範解答(for…ofバージョン)

function findMaxAndMin(arr) {
  if (arr.length === 0) return null;

  let max = arr[0];
  let min = arr[0];

  for (const num of arr) {
    if (num > max) max = num;
    if (num < min) min = num;
  }

  return { max, min };
}

console.log(findMaxAndMin([10, 25, 7, 30, 18]));
// { max: 30, min: 7 }
JavaScript

✅ 模範解答(forEachバージョン)

function findMaxAndMin(arr) {
  if (arr.length === 0) return null;

  let max = arr[0];
  let min = arr[0];

  arr.forEach(num => {
    if (num > max) max = num;
    if (num < min) min = num;
  });

  return { max, min };
}

console.log(findMaxAndMin([4, 12, 8, 6]));
// { max: 12, min: 4 }
JavaScript

💡 解説

  • 最大値と最小値を同時に管理するのがポイント。
  • 配列が空の場合は null を返すようにして安全にする。
  • for文for...offorEach いずれでも書けるが、途中で止める必要がないので forEach も相性が良い。

🔥 発展練習

  • 最大値と最小値だけでなく「そのインデックス」も一緒に返す
  • 数字だけでなく「文字列の配列」で「最も長い文字列と最も短い文字列」を返す

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