2016-03-30 14 views
0

, kullanıcının en fazla 20 sayı girmesi ve en üstte görüntülenmesini istiyorum. Aşağıda göstereceğim 4 ile benzer bir tane yaptım, ancak tüm bunların üzerinden geçmenin daha kolay bir yolu olmalı? herhangi bir tavsiye büyük olurdu.javascript kullanıcı girişi bu program için en fazla 20 sayı olan

<!DOCTYPE html> 
<html> 
<head> 
<script type="text/javascript"> 

function maxNum(num1, num2, num3, num4){ 
     var max = 0; 
     if((num1 >= num2) && (num1 >= num3)){ 
      max = num1; 
     } 
     else if((num2 >= num1) && (num2 >= num3) && (num3 >= num4)){ 
      max = num2; 
     } 

     else if((num3 >= num1) && (num3 >= num2) && (num3 >= num4)){ 
      max = num3; 
     } 

     else{ 
      max = num4; 
     } 
    return max; 
    } 

    var arr = []; 
    for(i=0;i<4;i++){ 
     arr[i] = parseInt(prompt("Enter a number")); 
    } 


    document.write(maxNum.apply(this, arr)); 





</script> 
</body> 
</html> 
+0

Gerçekten js için yeni, bir değişkenin ne olduğunu anlayamıyorum. Gerçekten aptalca kanıtlara ihtiyacım var. – prince

cevap

0
function findMaxNum(arr) { 
    return Math.max.apply(null, arr); 
} 

var arr = []; 

for (var i = 0; i < 4; i++) { 
    arr[i] = parseInt(prompt('Enter a number'), 10); 
} 

var maxNum = findMaxNum(arr); 

Math.max

function getMax(array) { 
 
    var i, 
 
     max = +array[0]; // the first element with implicit casting to number 
 

 
    for (i = 1; i < array.length; i++) { // loop throu all elements 
 
     if (+array[i] > max) { // with cast to number 
 
      max = array[i]; 
 
     } 
 
    } 
 
    return max; 
 
} 
 

 
var userInput = ['1', 'a', '4', '-', '1000', '20'].filter(Number); 
 
document.write(userInput + '<br>'); 
 
document.write(Math.max.apply(null, userInput) + '<br>'); 
 
document.write(getMax(userInput) + '<br>');
genellikle bir dizi sayı ile çalışır.

senin işlevi geçirilen tüm değerler arguments özel değişkenle Math.max kullanabilirsiniz sayılar olacağını varsayarsak

DEMO

+0

kullanıcı istemi ile nasıl yapılacağını gösterebilirim, anlamıyorum, js ile gerçekten yeni. Bana bütün kodu gösterebilir misin lütfen – prince

+0

[İhtiyacınız olan tüm kod] (https://jsfiddle.net/b0s78e1z/1/) – Andy

+0

Bir işlevi ve onun 'işlev bölümü', herhangi bir düşünce kullanmanız gerekir? – prince

0

Evet, Math.max.apply ile. Bir nesneyi (null) ve değerlere sahip bir dizi alır. Math.max(1, 4, 10) // 10 ama yerine bir dizi kabul etmesi için burada işlevini apply kullanın:

+0

kullanıcı girişi, atanmış numaralar değil. sayıların bir dizi iyi değil. – prince

0

(Not parseInt için radix eklendi).

function getMax() 
{ 
    if (Object.prototype.toString.call(arguments[0]) === '[object Array]') { 
     return Math.max.apply(null, arguments[0]); 
    } 
    return Math.max.apply(null, arguments); 
} 

var myArr = [2,4,6,8,10,12,14,16,18,20]; 

getMax(1,2,4,5,6,7,8,10); // 10 
getMax(myArr); // 20 

Yukarıdaki örnek, bir dizinin veya içinden geçirilecek bağımsız değişkenlerin listesini sağlar. Bu, gerektiğinde yeniden kullanmanızı sağlar.

+0

üzgünüm beni% 100 kaybettiniz üzgünüm! – prince

+0

Fonksiyon, birçok paramdan maksimum değeri elde etmenizi sağlar. Bir dizi olup olmadığını görmek için ilk argüman "argüman [0]" üzerinde bir test var.O halde o zaman bu argümanını JavaScript yönteminde yerleşik olan Math.max ile kullanacaktır. geri dönüş, tüm paramın bir dizisi olan argüman değişkenini kullanmaktır Math.max çağrısında doğrudan işleve geçti. –

İlgili konular