JavaScript 配列の要素で最大値・最小値を取得する
JavaScriptで配列の要素の中で最大または最小のものを取得します。
var arr = [1, 2, 3, 5, 3];
console.log(Math.max.apply(null, arr)); // 5
console.log(Math.min.apply(null, arr)); // 1解説
Math.max.apply
Math.max(1, 2, 3)と指定すると引数の中での最大値を返します。
引数の個数は可変なので、Math.max(1, 2, 3, 4, 5)のように必要な数だけ引数を指定できます。
しかしMath.max([1, 2, 3])のように1つの引数に配列を指定できません。
そのため、applyを追加し、applyの第1引数にnull(実際はnull以外でも何でもよいです)を指定し、第2引数に配列を指定します。
すると、第2引数の配列が引数として展開されてMath.maxが実行されます。
ES2015での方法
ES2015ではスプレッド演算子で配列を展開できるのでapplyは不要になり、非常にシンプルになります。
var arr = [1, 2, 3, 5, 3];
console.log(Math.max(...arr)); // 5
console.log(Math.min(...arr)); // 1