Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
函数未更改输入的Javascript问题_Javascript_Function - Fatal编程技术网

函数未更改输入的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我的荣幸:)