函数未更改输入的Javascript问题
我试图使用一个函数将输入更改为参数内设置的内容。检查可以很好地确定输入是否正确,但不会更改原始输入。我觉得这是我错过的一件小事,有人能帮忙吗? 这是我的密码:函数未更改输入的Javascript问题,javascript,function,Javascript,Function,我试图使用一个函数将输入更改为参数内设置的内容。检查可以很好地确定输入是否正确,但不会更改原始输入。我觉得这是我错过的一件小事,有人能帮忙吗? 这是我的密码: var x = prompt("enter number"); var y = prompt("enter number"); function isThisRowNumberCorrect(number1){ if (isNaN(number1) === true){ alert("Please choose a row nu
var x = prompt("enter number");
var y = prompt("enter number");
function isThisRowNumberCorrect(number1){
if (isNaN(number1) === true){
alert("Please choose a row number between 0 and 5!");
number1 = prompt("Please choose a row number between 0 and 5.")-'';
}
if (number1 > 5){
alert("Please choose a row number between 0 and 5!");
number1 = prompt("Please choose a row number between 0 and 5.")-'';
}
if (number1 < 0){
alert("Please choose a row number between 0 and 5!");
number1 = prompt("Please choose a row number between 0 and 5.")-'';
}
number1 = number1;
}
function isThisColumnNumberCorrect(number2){
if (isNaN(number2) === true){
alert("Please choose a column number between 0 and 5!");
number2 = prompt("Please choose a column number between 0 and 5.")-'';
}
if (number2 > 5){
alert("Please choose a column number between 0 and 5!");
number2 = prompt("Please choose a column number between 0 and 5.")-'';
}
if (number2 < 0){
alert("Please choose a column number between 0 and 5!");
number2 = prompt("Please choose a column number between 0 and 5.")-'';
}
number2 = number2;
}
isThisRowNumberCorrect(x);
isThisColumnNumberCorrect(y);
console.log(x + "" + y);
var x=提示(“输入编号”);
变量y=提示(“输入编号”);
函数isThisRowNumberCorrect(数字1){
如果(isNaN(数字1)==真){
警告(“请选择一个介于0和5之间的行号!”);
number1=提示(“请选择介于0和5之间的行号。”)-“”;
}
如果(编号1>5){
警告(“请选择一个介于0和5之间的行号!”);
number1=提示(“请选择介于0和5之间的行号。”)-“”;
}
如果(数字1<0){
警告(“请选择一个介于0和5之间的行号!”);
number1=提示(“请选择介于0和5之间的行号。”)-“”;
}
number1=number1;
}
函数isThisColumnNumberCorrect(数字2){
如果(isNaN(数字2)==真){
警告(“请选择介于0和5之间的列编号!”);
number2=提示(“请选择介于0和5之间的列号。”)-“”;
}
如果(数字2>5){
警告(“请选择介于0和5之间的列编号!”);
number2=提示(“请选择介于0和5之间的列号。”)-“”;
}
如果(数字2<0){
警告(“请选择介于0和5之间的列编号!”);
number2=提示(“请选择介于0和5之间的列号。”)-“”;
}
number2=number2;
}
该行号是否正确(x);
该列编号是否正确(y);
控制台日志(x+“”+y);
这两个函数的参数是基元类型。当传递到函数中时,JavaScript引擎将创建原语参数的新副本。因此,在函数中设置值number2=number2代码>不会更改外部的值
您需要从函数中返回新值isThisRowNumberCorrect
:
return number1;
并调用如下函数:
x = isThisRowNumberCorrect(x);
您正在将提示的结果重新分配给函数中的变量,该变量可能会错过条件。此外,函数不会返回任何内容。它们只是创建一个全局变量。编辑器应该有一个轻微的警告,用于将参数指定给具有相同名称的变量。虽然我建议不要使用提示符
和警报
,但您可能希望您的代码看起来像:
function promptRowExample(){
var p = prompt('Please Choose a Row Between 0 and 5.');
if(p < 0 || p > 5 || isNaN(p)){
return promptRowExample();
}
return 'The Number '+p+' is a Valid Number!';
}
console.log(promptRowExample());
函数提示行示例(){
var p=prompt('请选择0到5之间的一行');
if(p<0 | | p>5 | | isNaN(p)){
返回promptRowExample();
}
返回“数字”+p+“是有效数字!”;
}
log(promptRowExample());
看,我知道这很简单,这是一个更大的游戏代码,过去几个小时一直困扰着我。感谢you@Havamere我的荣幸:)