JavaScriptで配列内の最大値を求める方法を解説
JavaScriptで配列に含まれる数値の中から最大値を取得したい場合、reduce()メソッドを使うのがシンプルで確実な方法の一つです。reduce()は配列の各要素を順番に処理しながら、比較結果を累積していくため、最大値の判定にも最適です。
reduce()メソッドを使った最大値の取得方法
以下のコードでは、配列内の要素を2つずつ比較し、大きい方の値を次の処理へ引き継ぐことで、最終的に配列全体の最大値を返しています。この例では、最大値である「530」が出力されます。
サンプルコード
<!DOCTYPE html>
<html>
<body>
<script>
var myArr = [340, 25, 530, 299];
var max = myArr.reduce(function(a, b) {
return (a > b) ? a : b;
});
document.write("配列内の最大値: " + max);
</script>
</body>
</html>出力結果
配列内の最大値: 530
コードの仕組み
reduce()に渡しているコールバック関数は、引数 a(これまでの累積値)と b(現在の要素)を受け取ります。三項演算子 (a > b) ? a : b によって、大きい方の値を返し、それが次回の a として引き継がれます。すべての要素を処理し終えた時点で、配列内で最も大きな値だけが残るという仕組みです。
その他の方法:Math.max()との組み合わせ
より簡潔に書きたい場合は、Math.max() を組み合わせる方法もあります。
var myArr = [340, 25, 530, 299]; // スプレッド構文を使用(ES6以降) var max = Math.max(...myArr); console.log(max); // 530 // apply()を使用(古い環境でも動作) var maxOld = Math.max.apply(null, myArr); console.log(maxOld); // 530
このように、reduce()を使った方法とMath.max()を使った方法のどちらでも配列の最大値を簡単に取得できます。状況や対応ブラウザに応じて使い分けるとよいでしょう。
-
JavaScriptで配列内の最頻値とその出現回数を求める方法
JavaScriptでは、リテラル(数値や文字列など)を含む配列を受け取り、その中で最も多く登場する要素(最頻値)と、それが何回繰り返されているかを出力する関数を書くことができます。実装の考え方この処理は、配列の reduce() メソッドを使うことで効率的に実装できます。各要素の出現回数をオブジェクトに記録しながら走査し、同時に最大出現回数を持つ要素を追跡します。同じ出現回数の要素が複数ある場合は、それらすべてを配列に格納して返すようにしています。コード例実際のコードは以下のとおりです。 count[acc[0]]) { return [val]; }
-
JavaScriptで配列から最大の「1度だけ現れる数値」を見つける方法
本記事では、整数の配列を第1引数(かつ唯一の引数)として受け取るJavaScript関数を作成する方法を解説します。この関数の役割は、配列を順番に走査し、その中で一度だけ出現する数値のうち最大のものを見つけ出して返すことです。もし配列内に一意な数値がひとつも存在しない場合は、-1を返す仕様とします。前提となる制約配列の各要素には次の制約が与えられています。つまり、すべての要素は0より大きく101未満であることが保証されています。0 < arr[i] < 101具体例たとえば、入力配列が以下のような場合を考えてみましょう。const arr = [35, 37, 33, 39, 34