Reputation: 77
I tried to make a small lottery picking 6 random numbers out of 49 which are all different. This is what I came up with but something isn't working. Can you tell me what is wrong and correct the code?
function getNumbers(){
var numbers = [];
var randomnumber;
while(numbers.length < 6){
randomnumber = Math.ceil(Math.random()*49)
if(arr.indexOf(randomnumber) > -1) continue;
numbers[numbers.length] = randomnumber;
}
numbers.sort(sortNumber);
document.getElementById("Ausgabe").innerHTML = numbers;
}
function sortNumber(a,b) {
return a - b;
}
Upvotes: 1
Views: 85
Reputation:
There is one major problem which the others have missed. You forgot to call the function. lol.
Second error is that you wrote arr instead of numbers in the if statement.
Upvotes: 0
Reputation:
if(arr.indexOf(randomnumber) > -1)
should be replaced by
numbers.indexOf(randomnumber)
so arr ->
numbers
function getNumbers(){
var numbers = [];
var randomnumber;
while(numbers.length < 6){
randomnumber = Math.ceil(Math.random()*49)
if(numbers.indexOf(randomnumber) > -1) continue;
numbers[numbers.length] = randomnumber;
}
numbers.sort(sortNumber);
document.getElementById("Ausgabe").innerHTML = numbers;
}
function sortNumber(a,b) {
return a - b;
}
getNumbers();
<div id="Ausgabe" ></div>
Upvotes: 1
Reputation: 203
It works to me. You should use your numbers
array instead of arr
.
Html:
<p id="Ausgabe"></p>
JavaScript:
function getNumbers(){
var numbers = [];
var randomnumber;
while(numbers.length < 6){
randomnumber = Math.ceil(Math.random()*49)
if(numbers.indexOf(randomnumber) > -1) continue;
numbers[numbers.length] = randomnumber;
}
numbers.sort(sortNumber);
document.getElementById("Ausgabe").innerHTML = numbers;
}
function sortNumber(a,b) {
return a - b;
}
Upvotes: 0