在答案中输入空格键时答案未定义
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();
这将消除字符串前端和末尾的空格。
当在提示中输入空格键时,程序会将答案读取为 "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();
这将消除字符串前端和末尾的空格。