2017-01-16 11 views
0

最初の数値を5とし、2番目の数値を10のように入力すると、定義されません。私はalert(array);の内容を見てみましたが、何もなかったので定義されていませんでした。それは1から9のような他の数字のために働く。それはなぜ私に範囲5から10までの未定義の値を与えるのですか?私はちょうどあなたが最初の数字と2番目の数字を入力し、乱数があなたに与えられる乱数chooserを作りたいですか?配列からランダムな値を選択すると、未定義の値が返されます。

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

あなたの最初の数は

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
int型として解析するために必要な文字列として扱われている使用することを学び、デバッグツールではありません

使用:

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

代わりに:それは動作するようになりまし

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

prompt戻りstring

関連する問題