配列内の数値の最大値を取得
配列内の数値の最大値を取得するには、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'