【JavaScript】Math.max()で複数の値から最大値を取得する!

エンジニアに特化した転職エージェント!

・IT/Web系エンジニアの経験者の方
・どこの転職エージェントを利用しようか迷っている方

それなら、キッカケエージェントにご相談!

キッカケエージェントでは、少数精鋭のエージェントが、エンジニアの経験やスキル、志向性などをカウンセリングし、的確なアドバイスを提供します!

また、徹底した企業へのヒアリングにより、最適なマッチングを実現し、今では内定率が一般的なエージェントの2倍以上となっています!

転職エージェントに迷っている方、まずは無料でキャリア相談から!




(この記事は2022年11月17日に投稿されました。)

JavaScriptで複数の値から一番大きな数値を取得するにはMath.max()を使用します。

Math.max()は、複数の数値を比較して大きい方の値を取得するメソッドになります。

複数の値を比較することから、Math.max()のパラメータは幾つでも指定することができます。

また、Math.max()は配列の値の最大値を取得することもできるので、指定した値や配列から1番大きい値をを取得したい場合はMath.max()を使用しましょう。

今回はJavaScriptのMath.max()で複数の値から最大値を取得する方法について紹介していきます。

この記事はこんな方におすすめ
・指定した数値から1番大きい値を取得したい場合

Math.max()とは

Math.max()とは複数の数値を比較して一番大きい値を取得するメソッドになります。

Math.max()の書き方

Math.max()の書き方は下記のようになります。

Math.max()と記載し、()の中にパラメータを追記することで使用することができます。

Math.max()のパラメータ

Math.max()のパラメータは下記のようになります。

  1. 数値(任意):
    最大値を取得するための数値を指定する

Math.max()は任意なパラメータとして「数値」を指定します。

そして、こちらの数値は複数指定することが可能です。

Math.max()の返り値

Math.max()の返り値は、「指定した数の内の最大の数値」となります。

もし、最大値を取得することができない場合は「NaN」が返り値となります。

Math.max()で複数の値から最大値を取得するサンプルコード

Math.max()で複数の値から最大値を取得するサンプルコードをご紹介します。

ここでは下記の4つのパターンでMath.max()を使用します。

  1. 数値を2つ以上指定する場合
  2. 数値を指定しない場合
  3. 重複する数値を指定する場合
  4. 数値以外の値を指定する場合

数値を2つ以上指定する場合

数値を2つ以上指定する場合にMath.max()を使用します。

⚫︎ Main.js

実行結果

数値を2つ以上指定してMath.max()を使用した結果

Math.max()によって指定した数値の中から最大値を取得しています。

今回は「234」、「1234」、「98」の内、最大値は「1234」であるため「1234」が表示されています。

数値を指定しない場合

数値を指定しない場合にMath.max()を使用します。

⚫︎ Main.js

実行結果

数値指定しないでMath.max()を使用した結果

数値を指定しない場合、Math.max()は「-Infinity」が返されるようになります。

重複する数値を指定する場合

重複する数値を指定する場合にMath.max()を使用します。

⚫︎ Main.js

実行結果

重複する数値を指定してMath.max()を使用した結果

Math.max()によって指定した数値が重複しても最大値を取得しています。

今回は全ての値が「1234」であるため、最大値である「1234」が表示されています。

数値以外の値を指定する場合

数値以外の値を指定する場合にMath.max()を使用します。

⚫︎ Main.js

実行結果

数値以外の値を指定してMath.max()を使用した結果

指定した値が数値でないため、Math.max()で最大値が取得することができません。

そのため「NaN」が表示されています。

Math.max()で異なる型の数値を指定して最大値を取得する場合

異なる型の数値を指定して使用してもMath.max()は最大値を取得します。

⚫︎ Main.js

実行結果

Math.max()で異なる型の数値を指定して最大値を取得した結果

指定した数値の方は異なりますが、Math.max()で最大値を取得しています。

そのため、文字列型の「12300」が表示されています。

Math.max()でイレギュラーな数値を指定して最大値を取得する場合

イレギュラーな数値を指定してMath.max()で最大値を取得してみます。

ここでは下記の3つのパターンでMath.max()を使用します。

  1. 正の0と負の0を指定する場合
  2. NaNを指定する場合
  3. 正の無限大と負の無限大を指定する場合

正の0と負の0を指定する場合

正の0と負の0を指定する場合にMath.max()を使用します。

⚫︎ Main.js

実行結果

正の0と負の0を指定してMath.max()を使用した結果

数値に正の0と負の0を指定した場合、Math.max()は「正の0」を最大値として取得するようになります。

NaNを指定する場合

NaNを指定する場合にMath.max()を使用します。

⚫︎ Main.js

実行結果

NaNを指定してMath.max()を使用した結果

数値にNaNを指定した場合、どのような数値を指定したとしてもMath.max()は「NaN」を最大値として取得するようになります。

正の無限大と負の無限大を指定する場合

正の無限大と負の無限大を指定する場合にMath.max()を使用します。

⚫︎ Main.js

実行結果

正の無限大と負の無限大を指定してMath.max()を使用した結果

数値に正の無限大と負の無限大を指定した場合、Math.max()は「生の無限大」を最大値として取得するようになります。

Math.max()で配列の値から最大値を取得する場合

結論から言うと、Math.max()に配列を直接指定することはできません。

しかし、スプレッド構文を使用すると、配列の値から最大値を取得することが可能になります。

スプレッド構文とは、配列などの複数の値が格納されているデータを自動展開してくれる構文になります。

そのため、配列名の前に「」を指定すると、配列に格納されている値の最大値を返すようになります。

1次元配列の場合

1次元配列の場合にMath.max()を使用します。

⚫︎ Main.js

実行結果

Math.max()で1次元配列の値から最大値を取得した結果

Math.max()によって1次元配列に格納されている値から最大値を取得しています。

「3459」、「567」、「789」、「123」の内、最大値は「3459」であるため「3459」が表示されています。

多次元配列の場合

多次元配列の場合にMath.max()を使用します。

⚫︎ Main.js

実行結果

Math.max()で多次元配列の値から最大値を取得した結果

Math.max()によって多次元配列に格納されている値から最大値を取得しています。

配列の後ろにインデックスを指定すると、2次元配列内にある1次元配列の値から最大値を取得します。

また、forEach文を使用することで、2次元配列内にある全ての1次元配列内の値から最大値を取得することができます。

複数の値から最小値を取得する場合

複数の値から最小値を取得する場合は、Math.min()を使用します。

Math.min()とは、指定した数値の中から最小の値を取得するメソッドになります。

そのため、Math.max()とは対になるメソッドになります。

⚫︎ Main.js

実行結果

Math.min()で複数の値から最小値を取得した結果

Math.min()によって指定した数値から最小値を取得しています。

今回は「-234」、「1345」、「9800」であるため、最小値である「-234」が表示されています。

まとめ

⚫︎ Math.max()とは、複数の数値を比較して一番大きい値を取得するメソッドである

⚫︎ Math.max()は、下記のパラメータを指定して使用することができる
・数値
(複数指定してもOK)

⚫︎ 2つ以上の数値を指定してMath.max()を使用すると「最大値」を返す

⚫︎ 数値を指定しないでMath.max()を使用すると「-Infinity」を返す

⚫︎ 重複する数値を指定してMath.max()を使用すると「最大値」を返す

⚫︎ 数値以外の値を指定してMath.max()を使用すると「NaN」を返す

⚫︎ Math.max()に異なる型の数値を指定して使用すると「最大値」を返す

⚫︎ 数値に正の0と負の0を指定してMath.max()を使用すると「正の0」を返す

⚫︎ 数値にNaNを指定してMath.max()を使用すると「NaN」を返す

⚫︎ 数値に正の無限大と負の無限大を指定してMath.max()を使用すると「正の無限大」を返す

⚫︎ Math.max()にスプレッド構文を使用することで、配列の値から最大値を取得することができる

⚫︎ 複数の値から最小値を取得する場合は、Math.min()を使用する