2016-04-20 8 views
0

Ich soll Minimum und Maximum von Funktion "GetNumber" finden. Ich muss den Benutzer auffordern zu stoppen, wenn der Benutzer nicht aufhören will, wird die Funktion "getNumber" wiederholt ausgeführt, bis der Benutzer fragt, ob er aufhören soll. Wenn der Benutzer sich entschieden hat zu stoppen, wird es die Max und Min von Eingängen finden, die der Benutzer eingegeben hat. Kann ich wissen, wie man diese 3 Funktionen tgr verbindet, um Max und Min anzurufen?Suche nach Minimum und Maximum von einem Array mit Funktionen

//prompt to get number 
function getNumber() { 
    var myNumber; 
    do { 
     myNumber = Number(prompt("Enter an unsigned base 10 number:")); 
    } while (myNumber < 0) //loop will run again and again as long as the number is less than zero 
    return myNumber; 
} 

//function to find the maximum number in the array 
function myMax(myArray) { 
    var max = myArray[0]; 
    for (var z = 0; z < myArray.length; z++) { 
     if (myArray[z] > max) { 
      max = myArray[z]; 
     } 
    } 
    return max; 
} 

//function to find the minimum number in the array 
function myMin(myArray) { 
var min = myArray[0]; 
for (var z = 0; z < myArray.length; z++) { 
    if (myArray[z] > min) { 
     min = myArray[z]; 
    } 
} 
return min; 
} 
+0

Also muss der Benutzer eine Nummer eingeben weniger als Null eine Liste von Zahlen machen? –

+0

der Benutzer hat die Eingabe einer Nummer mehr als Null. Wenn die Nummer kleiner als Null ist, wird der Benutzer erneut aufgefordert, eine andere Nummer einzugeben. Nur Nummer> 0 wird im Array gespeichert. – Joanne

Antwort

0

Ein einfacher Ansatz

function getNumber() { 
    var myNumber; 
    do myNumber = prompt("Enter an unsigned base 10 number:"); 
    while (myNumber*1 < 0 && myNumber != "exit"); //loop will run again and again as long as the number is less than zero 
    return myNumber; 
} 

function getMinMax(a){ 
    return [Math.min.apply(Math,a),Math.max.apply(Math,a)] 
} 

function doTheLoop(){ 
    var num = getNumber(); 
    num === "exit" ? alert("thanks. bye..!") : (arr.push(num*1), 
               console.log(arr,getMinMax(arr)), 
               doTheLoop()) 
} 
var arr = []; 
doTheLoop(); 

Überprüfen Sie die Ergebnisse in der Konsole sein könnte.

1

var numbers = []; 
 
var isStopped = false; 
 
//prompt to get number 
 
function getNumber() { 
 
    var input = prompt('Enter an unsigned base 10 number or Input S/s to stop:'); 
 
    var myNumber = Number(input); 
 
    if (input == 'S' || input == 's'){ 
 
     finish(); 
 
    } 
 
    else if (myNumber > 0 && myNumber < 10){ 
 
     console.log("input number is: " + myNumber); 
 
     numbers.push(myNumber); 
 
    } 
 
} 
 

 
//function to find the maximum number in the array 
 
function myMax(myArray) { 
 
    var max = myArray[0]; 
 
    for (var z = 0; z < myArray.length; z++) { 
 
     if (myArray[z] > max) { 
 
      max = myArray[z]; 
 
     } 
 
    } 
 
    return max; 
 
} 
 

 
function javascript_abort() 
 
{ 
 
    throw new Error('Programme Ends'); 
 
} 
 

 
//function to find the minimum number in the array 
 
function myMin(myArray) { 
 
    var min = myArray[0]; 
 
    for (var z = 0; z < myArray.length; z++) { 
 
     if (myArray[z] < min) { 
 
      min = myArray[z]; 
 
     } 
 
    } 
 
    return min; 
 
} 
 

 
function finish(){ 
 
    isStopped = true; 
 
    alert('Max:' + myMax(numbers) + ' Min:' + myMin(numbers)); 
 
} 
 

 
$(document).ready(function() { 
 
    while(!isStopped){ 
 
     getNumber(); 
 
    } 
 
});
<html> 
 
    <title>Title</title> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> 
 
    <script src="app.js"></script> 
 
</head> 
 
<body> 
 
</body> 
 
</html>

+0

Hey, es tut mir leid, aber ich bin immer noch ein Anfänger in Javascript und ich bin mir nicht sicher, wie der Event Listener funktioniert. Wenn ich Benutzer "Typ s, um das Programm und andere Buchstaben zu stoppen, um die Zahlen weiter zu sammeln" PROMPT ist, wie mache ich dies eine falsche wahre Aussage in Ereignis-Listener? – Joanne

+0

@Joanne, ich habe den Code aktualisiert – Kelvin

1
function getMinMaxFromUsersInput(){ 
    // User inputted numbers 
    var numbers = []; 

    // Get numbers till user ask to stop 
    do { 
     numbers.push(getNumber()); 
    } while(confirm("Continue?")); 

    // Return min and max 
    return { 
     min: myMin(numbers), 
     max: myMax(numbers) 
    } 
} 
+0

Hallo David, danke für die Hilfe! – Joanne

+0

Was ist, wenn statt einer Bestätigung, ich den Benutzer zur Eingabe von "s" aufgefordert, um das Programm zu stoppen und das Maximum und Minimum warnen? Wie lege ich ein if-else in diese Funktion? E.G. Geben Sie "s" in der Promptbox ein, um zu stoppen, und es wird die Max und Min angezeigt. Wenn andere Alphabete eingefügt werden, sammelt es weitere Zahlen von der ersten Funktion. – Joanne

Verwandte Themen