2009-09-13 10 views

cevap

101

Math.max işlev isteğe bağlı herhangi bir sayıyı kabul edebilir:

Sözdizimi:

Math.max([value1[,value2[, ...]]]) 

Kullanımı:

Örneğin
var max = Math.max(num1, num2, num3); 

:

alert(Math.max(1,2,3,4,5,6)); // alerts 6 

önermek @Pascal MARTIN olarak Hatta apply yardımıyla, sayıların bir dizinin maksimum değeri elde için kullanabilirsiniz:

Array.prototype.max = function() { 
    return Math.max.apply(Math, this); 
}; 


var max = [1,2,3,4,5,6].max(); // 6 
+2

+1 Neden bu kadar hasn 'bilmiyorum Daha önce aldım ve bu kadar basit bir çözüm. Eğer bir dizi ile çalışmak istiyorsanız sadece Math.max.apply (Math, array) –

+7

kullanın. Google, SO'yu seviyor gibi görünüyor. İlk mesajın yayınlanmasından 45 dakika sonra 'javascript max' yazıyordum ve bu cevabı ilk sayfada buldum :-) –

19

hemen hemen tüm dillere, bir iki kere max kullanabilirsiniz: As @CMS işaret

Math.max(num1, Math.max(num2, num3)) 

JavaScript özellikle Math.max parametreleri rastgele sayıda verir

:

Math.max(num1, num2, num3); 
+0

+1 Got ile kullanma. –

+7

Math.max herhangi bir keyfi argümanı kabul edebilir, aşağıdaki cevaba bakın: http://stackoverflow.com/questions/1418569/javascript-max-function-for-3-numbers/1418646#1418646 – CMS

+0

@CMS: +1 Çok havalı bir şey öğrendim. Başka bir ana akım dilinin farkında değilim, ancak bunu yapan kişi, değişken sayıda işlev argümanını kabul edebilecek herhangi bir dilde olabilir. –

2

Değerlerinizi bir diziye aktarınsırasıyla maksimum ve minimum değerler içinve kullanımı Math.min.apply(null, arr) veya Math.max.apply(null, arr):

var arr = []; 
arr.push(value1); 
arr.push(value2); 
arr.push(value3); 

var minValue = Math.min.apply(null, arr); 
var maxValue = Math.max.apply(null, arr); 
-1
var numbers = [2,3,1]; 
numbers.sort(function(a,b){return b-a}); 
console.log("max number is", numbers[0]); // max number is 3 
+0

Doğru, Teşekkürler iMani! – atom

0

basitlik güzelliği sevmeye yeni yayılmış operatörü

var num = [23,34,56,72,1,22]; 
Math.max(...num) 

for more info

+0

Bu kod soruyu yanıtlarken, sorunun nasıl ve/veya neden çözüldüğüne ilişkin ek bağlam sağlayarak yanıtın uzun vadeli değerini artıracaktır. – Badacadabra

+0

@Badacadabra Bu cevabın değeri biraz daha az kod yazmanız ve "yayılan operatörü" kullanmanız gerekiyor Şimdi umarım u yorum yapmalıyım –