当我输入第一个数字为例如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]);
}
答案 0 :(得分:3)
prompt()
会在 string 文字中返回结果,您需要使用parseInt()
或其他方法将 string 转换为 Number < / em>的。
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]);
&#13;
此外,alert()
不是调试工具,请学习使用Console
答案 1 :(得分: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();
答案 2 :(得分: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