在答案中输入空格键时答案未定义

answer is undefined when a spacebar is entered within the answer

当在提示中输入空格键时,程序会将答案读取为 "undefined",而不是像我希望的那样通过 while 循环。我尝试将 "number==undefined" 添加到 while 循环,但它没有解决问题。

var name = new Array;
var number;
var i;
name[0] = "John";
name[1] = "Jeff";
name[2] = "Jake";
name[3] = "James";
for(i=0;i<=1;i++)
    {
    number = prompt("Name a number between 0-3:");
    while(!(number<=3) || !(number>=0) || parseInt(number)!==parseInt(number))
        {
        alert("Invalid answer.");
        number = prompt("Name your number again:");
        }
    document.write("You have chosen the name "+name[number]);
    }
}

name 是 javascript 中的保留关键字。因此,创建一个具有不同名称的变量。这可能与 space

没有任何关系

var nameArray = new Array;
var number;
var i;
nameArray[0] = "John";
nameArray[1] = "Jeff";
nameArray[2] = "Jake";
nameArray[3] = "James";
for (i = 0; i <= 1; i++) {
  number = prompt("Name a number between 0-3:");
  while (!(number <= 3) || !(number >= 0) || parseInt(number) !== parseInt(number)) {
    alert("Invalid answer.");
    number = prompt("Name your number again:");
  }
  document.write("You have chosen the name " + nameArray[number]);
}

您的问题很可能是因为 name 是 JavaScript 中的保留字。但以防万一您仍然看到问题,请更改这些行:

number = prompt("Name a number between 0-3:");
number = prompt("Name your number again:");

这些:

number = prompt("Name a number between 0-3:").trim();
number = prompt("Name your number again:").trim();

这将消除字符串前端和末尾的空格。