从数组中选择一个随机值给出未定义
问题描述:
当我输入第一个数字为例如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]);
}
答
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
答
你的第一个数字被视为需要字符串被解析为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();
答
使用:
而不是var first = parseInt(prompt("First number?"));
var second = parseInt(prompt("Second number?"));
:
var first = prompt("First number?");
var second = prompt("Second number?");
prompt
回报string
感谢现在的工作 –