コーディング中に数学的な処理を行うことは避けて通れません。
中でも、与えられた数の中から最大のものと最小のものを探し出すタスクにはよく遭遇します。JavaScriptの数学的処理やif文を使えば可能なタスクですが、Math.maxやMath.minを使うことでもっと簡単で効率的に行うことができます。
自分で作る関数とは違い、Math.maxはJavaScriptに内蔵されたネイティブな関数です。いくつかの数を与えることで、Math.maxはその中から最大となる数を見つけ出してくれます。コンソールで試してみましょう。
Math.maxは変数やオブジェクトも受け取って処理することができます。
ただし、配列の中から最大の数を見つける処理は自動ではできません。これまではループを使って処理する必要がありました。ES6をサポートするブラウザであればスプレッド演算子を使ってずっと簡単に行えます。
Math.maxはしばしば「どちらか一方」の結果を導き出すのに使われます。たとえばスクリーンサイズについて考えているとしましょう。
こうすればscreenWidth変数には必ず何らかの数字が割り当てられることになります。スクリーンの横幅か、もしくはその取得に失敗した場合には0が代入されます。
・最小を見つける
Math.minは逆に、最小を見つけ出します。
Math.minはよく境界を判別するのに使われます。たとえば、四角形の領域内にボールが弾んでいるとしましょう。四角形の右端までは500ピクセルです。ボールが右端に当たっているとき、それ以上先にボールを進ませないようにしたいですね。
スプレッド演算子はもちろん最小にも使えます。bigSizesという配列内の最小値を見つけるにはこうしましょう。
もしブラウザがサポートしていれば、applyを使えば同じことが行えます。
スプレッド演算子と同様に、applyはMath.maxにも使えます。
このように、Math.maxとMath.minで簡単に最大値・最小値を求めることができます。スプレッド演算子もうまく使いながら、効率よくコーディングしましょう。
※本稿は 「To the Max: Using Math.min and .max」を翻訳・再編集したものです。