2016-11-12 16 views
0

Ich versuche, den Inhalt von ID = "Demo" mit einer Schaltfläche zu sortieren, aber jedes Mal, wenn ich auf meine Schaltfläche klicke, bekomme ich nichts.Fehler beim Sortieren eines Arrays

Sobald die Schaltfläche geklickt wird, möchte ich wählen() in der Lage sein, den Inhalt von ID = "Demo" zu lesen (sobald die Zufallszahlen ausgegeben werden) und sortieren sie/dump sie in ID = "demo2".

Was ich denke, passiert ist select() lesen var arr als ein leeres Array, anstatt ein Array mit einer zufälligen Auswahl von Zahlen (wie es am Ende der ersten() ist)

<input id="input1" type="number" min="10" max="100" onchange="first(); sortButton();"> 

<p id="demo"></p> 

<!-- button appears here, once a value is entered into the input field --> 
<p id="buttons1" onclick="select();"></p> 


<p id="demo2"></p> 

<script> 


// once input1 value changes this outputs a random value less than N (value of input1) N times, then dumps out the random numbers in id="demo" 

function first() { 
var N = document.getElementById("input1").value; 
var arr = []; 
while(arr.length < N) 

{var randomnumber = Math.ceil(Math.random()*N); 
arr[arr.length] = randomnumber;} 
document.getElementById("demo").innerHTML = arr;} 


// Once input1 value changes, this buttons appears in id="buttons" 
function sortButton() {document.getElementById("buttons1").innerHTML = 
'<button type="button" onclick="select();">Select Sort</button>';} 



// meant to sort the random numbers in id="demo" once the button is clicked 
function select() { 
document.getElementById("demo2").innerHTML = arr.sort(function(a,b){return a - b});} 




</script> 
+0

Ist Ihr Code formatiert einfach nicht so gut hilft? Ich würde fast denken, dass 'select' Teil der' first' Funktion ist, ändert sich etwas, wenn Sie den Code ausführen, haben Sie irgendwelche Fehler im Debugger? Wird beim Klicken auf die Schaltfläche ein Fehler angezeigt? – Icepickle

Antwort

0

Sie müssen var arr = [] außerhalb Ihrer Funktion deklarieren. Hier ist ein Arbeitsprogramm. Hope it :)

// once input1 value changes this outputs a random value less than N (value of input1) N times, then dumps out the random numbers in id="demo" 
 
var arr = []; 
 

 
function first() { 
 
var N = document.getElementById("input1").value; 
 
while(arr.length < N){ 
 

 
    var randomnumber = Math.ceil(Math.random()*N); 
 
    arr[arr.length] = randomnumber; 
 
} 
 
document.getElementById("demo").innerHTML = arr; 
 
} 
 

 

 
// Once input1 value changes, this buttons appears in id="buttons" 
 
function sortButton() { 
 
    document.getElementById("buttons1").innerHTML = 
 
'<button type="button" onclick="select();">Select Sort</button>'; 
 
} 
 

 

 

 
// meant to sort the random numbers in id="demo" once the button is clicked 
 
function select() { 
 
document.getElementById("demo2").innerHTML = arr.sort(function(a,b){return a - b}); 
 
}
<input id="input1" type="number" min="10" max="100" onchange="first(); sortButton();"> 
 

 
<p id="demo"></p> 
 

 
<!-- button appears here, once a value is entered into the input field --> 
 
<p id="buttons1" onclick="select();"></p> 
 

 

 
<p id="demo2"></p>

+0

das hat funktioniert! ICH DANKE DIR SEHR. Entschuldigung, wenn das rudimentär schien, versuche ich js zu lernen, so viele Sachen rutschen an mir vorbei – anon

+0

@anon du bist sehr willkommen :)! – HenryDev

Verwandte Themen