說到JavaScript中的Max,就不得不提到Math庫中的Math.max()方法。該方法用于返回一組數(shù)中的最大值。以最常用的例子為例,求取兩個(gè)數(shù)中最大值:
例如:
Math.max(4,5); // 5
Math.max(5,7,2,9,3); // 9
Math.max(-1,0,-99,-25,-7); // 0
Javascript支持多個(gè)參數(shù)(參數(shù)列表),也支持一個(gè)Array作為參數(shù)。如果沒有任何可比較的值,結(jié)果返回-Infinity(負(fù)無窮),即:
console.log(Math.max()); // -Infinity
注意區(qū)分,由于ES5中的Array轉(zhuǎn)換規(guī)則,以下結(jié)果將返回NaN(Not-a-Number, 非數(shù)字):
Math.max([]);
Math.max([1]);
Math.max([2,3]);
還記得NaN(Not-a-Number)嗎? 在數(shù)字計(jì)算中,有時(shí)候會得到NaN。在比較數(shù)值使用Math.max()時(shí),如果其中有NaN,結(jié)果將總是NaN。例如:
Math.max(1,2,NaN); // NaN
一個(gè)有趣的問題是,如何在Math.max()中使用一個(gè)Array?用簡單的鏈?zhǔn)椒椒▉砼欧臕rray元素的最大值是一種方式:
var array = [-1, 4, -6, 5, 2, -2];
var largest = Math.max.apply(Math, array);
console.log('Largest: ' + largest); // Largest: 5
我們必須將前兩個(gè)參數(shù)設(shè)置為Math對象和一個(gè)過程內(nèi)部的特殊值。Please注意,在翻譯到其他語言時(shí),可能存在語言方面的差異導(dǎo)致適用性不強(qiáng)或運(yùn)行異常。