【JavaScript】配列から最小値と最大値を取得する3つの方法

プログラミングにおいて、配列から最小値や最大値を取得するケースはよくあります。JavaScriptにはこのような操作を簡単に行うためのいくつかの方法があります。この記事では、JavaScriptで配列から最小値と最大値を効率的に取得する3つの主要な方法について詳しく解説します。

Math.min() と Math.max() を使う方法

JavaScriptの Math.min() と Math.max() メソッドは、数値の引数を取り、それぞれ最小値と最大値を返します。ただし、これらのメソッドは配列を直接受け付けないため、スプレッド演算子(…)を使って配列を展開する必要があります。

const arr = [1, 2, 3, 4, 5];
const min = Math.min(...arr);
const max = Math.max(...arr);

console.log(`最小値: ${min}, 最大値: ${max}`);
  • メリット: コードが短く、読みやすい。
  • デメリット: 大きな配列に対しては、スプレッド演算子がスタックオーバーフローを引き起こす可能性がある。

reduce() メソッドを使う方法

Array.prototype.reduce() メソッドを使うと、配列の各要素に対して繰り返し処理を行い、単一の値にまとめることができます。このメソッドを使って最小値と最大値を取得することも可能です。

const arr = [1, 2, 3, 4, 5];

const min = arr.reduce((acc, val) => Math.min(acc, val), Infinity);
const max = arr.reduce((acc, val) => Math.max(acc, val), -Infinity);

console.log(`最小値: ${min}, 最大値: ${max}`);
  • メリット: 大きな配列に対しても安全に使用できる。
  • デメリット: reduce() の動作が初心者には少し難解に感じられる場合がある。

通常のループを使う方法

最も基本的な方法ですが、forループやfor…ofループを使って最小値と最大値を手動で計算することもできます。

const arr = [1, 2, 3, 4, 5];
let min = Infinity;
let max = -Infinity;

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

console.log(`最小値: ${min}, 最大値: ${max}`);
  • メリット: 基本的な方法であり、どのような動作をしているのか理解しやすい。
  • デメリット: コードが少し長くなる可能性がある。

まとめ

JavaScriptで配列から最小値と最大値を取得する方法はいくつかありますが、それぞれにメリットとデメリットがあります。状況や要件に応じて最適な方法を選びましょう。この記事が、その選択の一助となれば幸いです。