为什么我定义的范围在javascript中不起作用?

为什么我定义的范围在javascript中不起作用?,javascript,Javascript,我的射程似乎不起作用。例如,如果我输入最小的数字是10,最大的数字是20,它将不会在范围内给出我。你知道怎么解决这个问题吗 var-no; 函数playFunction(){ message1=document.getElementById(“错误输入”); message1.innerHTML=“”; message2=document.getElementById(“错误输入2”); message2.innerHTML=“”; x=document.getElementById(“输入”

我的射程似乎不起作用。例如,如果我输入最小的数字是10,最大的数字是20,它将不会在范围内给出我。你知道怎么解决这个问题吗

var-no;
函数playFunction(){
message1=document.getElementById(“错误输入”);
message1.innerHTML=“”;
message2=document.getElementById(“错误输入2”);
message2.innerHTML=“”;
x=document.getElementById(“输入”).value;
x2=document.getElementById(“input2”).值;
试一试{
如果(x==“”)
抛出“空”;
if(isNaN(x))
抛出“不是数字”;
}捕捉(错误){
message1.innerHTML=“输入为”+错误;
message1.style.color=“红色”;
x=数量(x);
}
试一试{
如果(x2==“”)
抛出“空”;
if(isNaN(x2))
抛出“不是数字”;
x2=数量(x2);
}捕捉(错误){
message2.innerHTML=“输入为”+错误;
message2.style.color=“红色”;
x2=数量(x2);
}
试一试{
如果(数量(x)>数量(x2))
投掷“必须高于最低数量”;
}捕捉(错误){
message2.innerHTML=“输入”+错误;
}
var min=document.getElementById(“输入”).value;
控制台日志(分钟);
var max=document.getElementById(“input2”).value;
控制台日志(最大值);
randomNo=Math.floor(Math.random()*(max-min+1))
控制台日志(随机编号);
}

输入一个较小的数字

输入一个更大的数字

播放按钮

您将随机部分写错了。在
Math.random()*(max-min+1)
中,您实际得到随机数(介于0和1之间)并将其乘以括号中的数字,这将是整数的新最大值,但为了更改最小值,您必须增加此整数,您可以这样做:

function getRandomArbitrary(min, max) {
    return Math.random() * (max - min) + min;
}
在代码中稍加改进:

函数getrandom任意(最小值、最大值){
返回Math.random()*(max-min+1)+min;
}
函数playFunction(){
const message1=document.getElementById(“错误输入”);
const message2=document.getElementById(“错误输入2”);
const min=编号(document.getElementById(“输入”).value);
const max=Number(document.getElementById(“input2”).value);
让我们不要;
函数init(){
message2.innerHTML=“”;
message1.innerHTML=“”;
}
函数validateInput(displayErrorElement,值){
让信息;
如果(值==“”)
message=“empty”;
else if(isNaN(值))
message=“不是数字”;
如果(信息){
displayErrorElement.innerHTML=“输入为”+消息;
displayErrorElement.style.color=“红色”;
返回false;
}
返回true;
}
函数validateRange(displayErrorElement,最小值,最大值){
如果(最小值>最大值){
displayErrorElement.innerHTML=“输入必须高于最低数字”;
返回false;
}
返回true;
}
init();
如果(!validateInput(message1,min))返回false;
如果(!validateInput(message2,max))返回false;
如果(!validateRange(message2,min,max))返回false;
控制台日志(分钟);
控制台日志(最大值);
randomNo=数学地板(GetRandomArbitral(最小,最大));
控制台日志(随机编号);
}
标签{
显示:块;
}
输入一个较小的数字
输入一个更大的数字

播放按钮
非常感谢您帮助我整理代码,但是我想知道我的随机方法出了什么问题?我添加了一个解释(对不起,我忘了。让我知道是否清楚哦,对不起,我可以问一下,您将getRandomArbitary(最小,最大)放在var randomNo=getRandomArbitary(最大,最小)最小值和最大值的位置重要吗?是的,对不起,我的不好。这很重要