2009-09-13 13 views
35

के लिए जावास्क्रिप्ट अधिकतम() फ़ंक्शन मुझे 3 अलग-अलग संख्याओं से उच्चतम संख्या प्राप्त करने की आवश्यकता है। मुझे मिली एकमात्र चीज़ अधिकतम() है लेकिन आप केवल 2 संख्याओं का उपयोग कर सकते हैं।3 नंबर

सबसे अच्छा तरीका क्या है?

उत्तर

101

Math.max फ़ंक्शन किसी भी मनमानी तर्कों को स्वीकार कर सकता है:

सिंटेक्स:

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

उपयोग:

var max = Math.max(num1, num2, num3); 

उदाहरण के लिए:

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

तुम भी, संख्या की एक सरणी के अधिकतम मूल्य प्राप्त करने के लिए इसका इस्तेमाल करते हैं @Pascal MARTIN के रूप में सुझाव है कि सकता है apply की मदद से:

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


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

+1 के बजाय Math.max() का उपयोग करना है, मुझे नहीं पता कि यह हैन ' पहले से उठाया गया है और यह अब तक का सबसे सरल समाधान है। यदि आप इसे सरणी के साथ काम करना चाहते हैं तो बस Math.max.apply (Math, array) –

+7

का उपयोग करें Google को ऐसा लगता है। प्रश्न पहले पोस्ट किए जाने के 45 मिनट बाद मैं 'जावास्क्रिप्ट अधिकतम' जा रहा था, और यह जवाब पहले पृष्ठ पर मिला :-) –

19

लगभग किसी भी भाषा में, एक दो बार अधिकतम उपयोग कर सकते हैं:

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

रूप @CMS अंक बाहर, जावास्क्रिप्ट विशेष रूप से Math.max के मापदंडों के एक मनमाना संख्या की अनुमति देता है:

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

+1 गॉट साथ उपयोग करना सादगी की सुंदरता से प्यार करना। –

+7

Math.max किसी भी मनमाने ढंग से तर्कों को स्वीकार कर सकता है, नीचे मेरा उत्तर देखें: http://stackoverflow.com/questions/1418569/javascript-max-function-for-3-numbers/1418646#1418646 – CMS

+0

@CMS: +1 बहुत अच्छा, मैंने कुछ सीखा। मुझे एक और मुख्यधारा की भाषा के बारे में पता नहीं है जो ऐसा करता है, हालांकि किसी भी भाषा में प्रिंसिपल तर्कों की एक चर संख्या को स्वीकार कर सकते हैं। –

2

अपने मानों को एक सरणी में पुश करें arr और प्रयोग Math.min.apply(null, arr) या 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

ठीक है, धन्यवाद iMani! – atom

0

नई प्रसार ऑपरेटर

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

for more info

+0

हालांकि यह कोड प्रश्न का उत्तर दे सकता है, इस बारे में अतिरिक्त संदर्भ प्रदान करता है कि समस्या को हल करने के तरीके के बारे में अतिरिक्त संदर्भ प्रदान करने से उत्तर के दीर्घकालिक मूल्य में सुधार होगा। – Badacadabra

+0

@ बादाकाडब्रा इस उत्तर का मूल्य आपको थोड़ा कम कोड लिखने के लिए मिलता है और "स्प्रेड ऑपरेटर" का उपयोग करने के लिए मिलता है अब मुझे उम्मीद है कि मुझे उम्मीद है –

संबंधित मुद्दे