2017-01-16 91 views
0

当我输入第一个数字为例如5,第二个数字为10时,我得到未定义。我试图alert(array);看到它的内容,但没有什么,因此未定义。它适用于其他数字,如1至9.为什么它会给我一个未定义的值范围5到10?我只想做一个随机数字选择器,你将输入第一个数字,第二个数字和一个随机数字将会给你?从数组中选择一个随机值给出未定义

function promptUser() { 
 
    var first = prompt("First number?"); 
 
    var second = prompt("Second number?"); 
 
    var array = []; 
 
    //Make a range from First number to last number then choose a random number 
 
    for (x = first; x <= second; x++) { 
 
    array.push(x); 
 
    } 
 
    alert(array); 
 
    randomInt = Math.floor(Math.random() * array.length); 
 
    alert("The random number is " + array[randomInt]); 
 
}

回答

3

prompt()返回结果中字符串字面,你需要使用parseInt()或其他方法,将字符串

var first = parseInt(prompt("First number?"), 10); 
 
var second = parseInt(prompt("Second number?"), 10); 
 
var array = []; 
 

 
for (x = first; x <= second; x++) { 
 
    array.push(x); 
 
} 
 

 
randomInt = Math.floor(Math.random() * array.length); 
 
console.log(array, randomInt, "The random number is " + array[randomInt]);

此外,alert()不是一个调试工具,了解如何使用Console

+0

感谢现在的工作 –

0

你的第一个数字被视为需要字符串被解析为INT

function promptUser(){ 
    var first = prompt("First number?"); 
    var second = prompt("Second number?"); 
    var array = []; 
    <!--Make a range from First number to last number then choose a random number--> 
    for (x = parseInt(first); x <= parseInt(second); x++){ 
     array.push(x); 
    } 
    console.log(array); 
    randomInt = Math.floor(Math.random()*array.length); 
    console.log(randomInt); 
    alert("The random number is " + array[randomInt]); 

    } 
    promptUser(); 
0

使用:

而不是
var first = parseInt(prompt("First number?")); 
var second = parseInt(prompt("Second number?")); 

var first = prompt("First number?"); 
var second = prompt("Second number?"); 

prompt回报string

相关问题