JavaScriptで配列の最小値を取得する2つの方法|Math.min()とsort()の使い方
Math.min()とsort()で配列の最小値を取得できる
JavaScriptでは、Math.min()とsort()という2つの代表的な手法を使って、配列の中から最小値を簡単に見つけることができます。それぞれの使い方をサンプルコード付きで解説します。
1) Math.min()を使う方法
Math.min()関数は、引数として渡されたすべての値を調べ、その中で最も小さい値を返します。apply()メソッドと組み合わせることで、配列の全要素をまとめて渡し、最小値を求めることができます。以下の例で具体的な使い方を確認してみましょう。
例
<html>
<body>
<script>
function minimum(value) {
if (toString.call(value) !== "[object Array]")
return false;
return Math.min.apply(null, value);
}
document.write(minimum([6,39,55,1,44]));
</script>
</body>
</html>出力結果
1
このコードでは、まずtoString.call()で引数が配列であるかどうかをチェックし、配列でなければfalseを返します。配列であれば、Math.min.apply(null, value)により配列の全要素がMath.min()に展開されて渡され、最小値である「1」が出力されます。
補足:ES2015以降ではスプレッド構文「...」を利用して、Math.min(...numbers)のようにより簡潔に記述することもできます。新しいプロジェクトではこちらの書き方が推奨されます。
2) sort()を使う方法
sort()メソッドに比較関数を渡すと、配列の要素を昇順または降順に並べ替えることができます。並べ替えた後、lengthプロパティを使えば、次のようにして最小値を取得できます。
例
<html>
<body>
<input type ="button" onclick="myFunction()" value = "clickme">
<p id="min"></p>
<script>
var numbers = [6,39,55,1,44];
document.getElementById("min").innerHTML = numbers;
function myFunction() {
numbers.sort(function(a, b){return b - a});
document.getElementById("min").innerHTML = numbers;
document.write(numbers[numbers.length-1]);
}
</script>
</body>
</html>プログラムを実行すると、以下のような画面が表示されます。

出力結果
上の「clickme」ボタンをクリックすると、次のように表示されます。
1
このコードでは、比較関数「b - a」によって配列が降順に並べ替えられます。降順の場合、配列の末尾(numbers.length - 1番目)の要素が最小値となるため、「1」が出力されます。逆に昇順で並べ替えたい場合は、比較関数を「a - b」に変更すれば、先頭の要素(numbers[0])が最小値として取得できます。
-
JavaScriptで配列の最小値と最大値を返す関数の作成方法
問題配列を受け取り、新しい配列を返すJavaScript関数を作成する必要があります。戻り値となる配列の最初の要素には入力配列の最小値を、2番目の要素には最大値を格納します。コード例以下のコードでは、Array.prototype.reduce()メソッドを使用して、配列を一度だけ走査しながら最小値と最大値を同時に求めています。const arr = [56, 34, 23, 687, 2, 56, 567]; const findMinMax = (arr = []) => { const creds = arr.reduce((acc,
-
Pythonのリストから最小値の要素を取得する方法をわかりやすく解説
Pythonでリストの中から最小値を持つ要素を取得したい場合は、組み込み関数の min() を使います。min() 関数にリストを引数として渡すと、先頭から順に要素を走査し、それまでに見つかった最小値を記憶しながらリストの末尾まで進み、最終的にその最小値を返します。基本的な使い方まずは最もシンプルな例を見てみましょう。my_list = [2, 3, 1, 5, -1] print(min(my_list))実行結果-1このように、リスト内の最小値である -1 が出力されます。数値以外にも、文字列のリスト(辞書順で最小のもの)などにも同じように使えます。最小値のインデックスも取得したい場合最小