2010-09-10 20 views
8
var one = 1415; 
var two = 2343; 
var three = 11; 

如何從這些變量中獲得最大數量?jQuery從列表中獲得最大數字

+0

你不能把它們粘在一個數組中嗎?然後做一些排序? – 2010-09-10 21:12:28

+6

'最大=兩個'相當短。可以通過使用較短的變量名稱進一步縮短。 – 2010-09-10 21:13:13

+1

jQuery與此有什麼關係? – DMin 2010-09-11 01:05:59

回答

12

如果你在一個數組有他們,你可以這樣做:

var numbers_array = [1415, 2343, 11]; 

numbers_array.push(432); // now the array is [1415, 2343, 11, 432] 

var biggest = Math.max.apply(null, numbers_array); 
+0

@WorkingHard - 您可以使用'.push()'將項目添加到數組的頂部。我會在我的答案中舉一個例子。 – RightSaidFred 2010-09-10 21:30:19

21

Math.max(一,二,三)

+0

@WorkingHard,您可以使用Math.max.apply(null,[3,2,1])或排序數組(通過desc)並將第一個元素 - [1,4,3,2] .sort(function (a,b){return a b?-1:0})[0] – shabunc 2010-09-10 21:23:35

1

把它們放入數組,對它們進行排序,並採取最後的排序值:

[one, two, three].sort(function (a, b) { 
    return a > b ? 1 : (a < b ? -1 : 0); 
}).slice(-1); 
+1

託德,實際上,沒有任何保證,該數組將被數字排序。你應該這樣排序 - [n1,n2,n3] .sort(函數(a,b){返回a> b?1:a shabunc 2010-09-10 21:22:01

+0

有趣的是,我沒有意識到這一點。它根據字符串表示對每個項目進行排序,所以30在4之前。 – 2010-09-11 01:01:03

0
function biggestNumber(){ 
    return Math.max.apply(this,arguments); 
} 

var one= 1415; 
var two= 2343; 
var three= 11; 

biggestNumber(一,二,三)

/*返回值:(數字) */

+0

爲什麼你不會經常在這種情況下調用'Math.max'? – 2010-09-11 01:07:10

1

如果你的價值觀是在陣列中,儘量減少:

var biggestValue = myArray.reduce(function(a,b){ return a > b ? a : b ; }); 
+1

它看起來像IE8(至少,可能進一步下調)不支持Array.reduce。您可以使用此處列出的其他方法,也可以添加兼容性代碼[來自Mozilla參考文檔](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/array/reduce) – Kevin 2011-08-31 22:56:03

1

,將工作100%

var max = Math.max.apply(Math, "your array");