配列内の数値の最大値を取得

配列内の数値の最大値を取得するには、Math.max.applyメソッドの第二引数に比較する数値の入った配列を指定することで取得することが可能です。

JavaScript

var nums   = [123, -10, 1024, -1, 7890, -321, 0, 5],
    maxNum = Math.max.apply(null, nums);

alert(maxNum); // 7890

スプレッド構文...に対応しているブラウザの場合は、次のようにapplyメソッドを使用せずに処理することができます。

JavaScript

var nums   = [123, -10, 1024, -1, 7890, -321, 0, 5],
    maxNum = Math.max(...nums);

alert(maxNum); // 7890
  • ※ スプレッド構文はECMAScript 2015(ES6)から追加された機能のため、全てのIEや古いバージョンのブラウザは対応していません。

これらの方法は配列内は全て数値である必要があり、数値以外が含まれるとNaNを返します。
数値以外でも比較できるようにするには次のようにします。

JavaScript

var nums = [123, -10, 1024, -1, '7890', -321, 'hello', 0, 5, true],
    maxNum, num;

for (var i = 0, len = nums.length; i < len; i++) {
	if (typeof nums[i] !== 'number' && typeof nums[i] !== 'string') continue;

	num = Number(nums[i]);

	if (typeof num !== 'number' || isNaN(num)) continue;

	if (i === 0 || nums[i] > Number(maxNum)) maxNum = nums[i];
}

alert(maxNum); // '7890'

JavaScript逆引きリファレンス一覧へ戻る