JavaScriptで最大値と最小値を計算する方法について
Math.maxの基本
Math.max()
は、引数として渡された数値の中から最大値を返す関数です。使用方法は次の通りです:
Math.max(value1, value2, ...)
数学的に表現すると、次のように書けます: $$ \text{Math.max}(x_1, x_2, \ldots, x_n) = \max \{ x_1, x_2, \ldots, x_n \} $$
例:
const max = Math.max(3, 7, 2, 9, 4);
console.log(max); // 結果: 9
上記の例では、3、7、2、9、4の中で最大値である9が返されます。
Math.minの基本
Math.min()
は、引数として渡された数値の中から最小値を返す関数です。使用方法は次の通りです:
Math.min(value1, value2, ...)
数学的に表現すると、次のように書けます: $$ \text{Math.min}(x_1, x_2, \ldots, x_n) = \min \{ x_1, x_2, \ldots, x_n \} $$
例:
const min = Math.min(3, 7, 2, 9, 4);
console.log(min); // 結果: 2
上記の例では、3、7、2、9、4の中で最小値である2が返されます。
応用例
配列の最大値と最小値を計算する
配列の場合、Math.max
やMath.min
を直接使用することはできません。しかし、スプレッド構文(...
)を用いることで簡単に計算できます。
const numbers = [3, 7, 2, 9, 4];
const max = Math.max(...numbers);
const min = Math.min(...numbers);
console.log(max); // 結果: 9
console.log(min); // 結果: 2
動的なデータの最大値と最小値
例えば、ユーザーが入力した数値データの中から最大値や最小値を計算したい場合は、次のように記述できます。
const userInput = prompt("カンマ区切りで数値を入力してください:");
const numbers = userInput.split(",").map(Number);
const max = Math.max(...numbers);
const min = Math.min(...numbers);
console.log(`最大値: ${max}, 最小値: ${min}`);
特殊なケース
引数が空の場合
Math.max()
またはMath.min()
に引数を渡さなかった場合、それぞれの戻り値は次のようになります:
Math.max()
:-Infinity
Math.min()
:Infinity
これは、数値の最大値・最小値を計算する際に、どの値よりも小さいまたは大きい値として扱われるためです。
console.log(Math.max()); // 結果: -Infinity
console.log(Math.min()); // 結果: Infinity
非数値が含まれる場合
Math.max()
やMath.min()
の引数に非数値が含まれると、結果はNaN
になります。
console.log(Math.max(3, "a", 5)); // 結果: NaN
console.log(Math.min(3, "a", 5)); // 結果: NaN
まとめ
Math.max()
とMath.min()
は、JavaScriptで最大値と最小値を計算するための便利な関数です。特に、スプレッド構文を活用することで配列の操作が簡単になります。また、特殊なケース(空の引数や非数値の引数)についても注意が必要です。
これらの関数を活用することで、さまざまな場面で効率的なコードを記述することができます。