2017-01-16 134 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