燈明ブログ

現状は小池啓仁の応援ブログ

Mathオブジェクトのmaxメソッドで、配列最大値を求める!

ネットで検索すると大体、『Math.max()は、2つの数値を比較して大きいほうを返す』との説明になっています。
しかし、実際は、2つ以上のリストでも大丈夫です。

var biggest = Math.max(10, 11, 12, 9, 13, 8);
alert(biggest); // 13が表示される

また、他関数を自関数のようにしてしまうapply関数で、その第二引数には、他関数の引数を配列形式で渡します。
この2つの性質を利用すると、配列内の最大値を、apply関数で簡単に取得することが出来ます。


apply関数の第二引数へ、maxメソッドの引数すべてを配列形式で渡します。

var aaa = [10, 11, 12, 9, 13, 8];
var biggest = Math.max.apply(null, aaa);
alert(biggest); // 13が表示される

ちなみに、apply関数の第一引数にnullを設定するとグローバルオブジェクト(IEであればwindowオブジェクト)のthisと同等になる。