无法使 indexOf 语句正常工作
Cant get indexOf statement to work
最终我会提示用户猜测,然后最终会更改,因此无论用户输入什么,它都会始终将第一个字母大写并将其余字母小写。 (我这样做是为了如果用户输入猜测字符串将匹配或不匹配数组中的值。)我尝试做一个 for 语句来使用循环计数器(我正在寻找总共 3 个猜测)。但是当我尝试使用 indexOf 检查数组时,我在包含 indexOf 语句的那一行上不断收到 "unexpected token" 错误。所以问题是(1)我在这行代码中做错了什么?
//declare variables
var sportsArray = new Array("Football", "Basketball", "Rollerblading", "Hiking", "Biking", "Swimming");
var name = prompt("Enter your name");
var loops = 0;
var score = 0;
var sGuess = prompt("enter your sport guess");
// uses substrings to ultimately capitalize the 1st letter, and make everything after it lowerCase.
var sFirstPart = sGuess.substr(0, 1);
var sFirstCap = sFirstPart.toUpperCase();
var sSecondPart = sGuess.substring(1, sGuess.length);
var sSecondLow = sSecondPart.toLowerCase();
var usableGuess = sFirstCap + sSecondLow;
while(loops < 4){
if(sportsArray.indexOf(usableGuess) = 0 {
document.write("nice guess");
loops++;
}else {
document.write("loser");
loops++;
}
}
sportsArray.indexOf(usableGuess) === 0)
而不是 sportsArray.indexOf(usableGuess) = 0
检查左侧常量是否相等是一个好习惯。它会在大多数浏览器中抛出异常:
var a = 3;
if (12 = a) { // throws ReferenceError: invalid assignment left-hand side in Firefox
//do something
}
另外:使用提供静态代码分析的工具。 jslint.com or jshint.com for js is a good choice. There are also IDE plugins explicitely for that (using either of those two and more), see Is there a working JSLint Eclipse plug-in?.
这适用于检查整个数组:
var sportsArray = new Array("Football", "Basketball", "Rollerblading", "Hiking", "Biking", "Swimming");
var name = prompt("Enter your name");
var loops = 0;
var score = 0;
var sGuess = prompt("enter your sport guess");
// uses substrings to ultimately capitalize the 1st letter, and make everything after it lowerCase.
var sFirstPart = sGuess.substr(0, 1);
var sFirstCap = sFirstPart.toUpperCase();
var sSecondPart = sGuess.substring(1, sGuess.length);
var sSecondLow = sSecondPart.toLowerCase();
var usableGuess = sFirstCap + sSecondLow;
while(loops < 4){
if(sportsArray.indexOf(usableGuess) > -1) {
document.write("nice guess");
loops++;
}else {
document.write("loser");
loops++;
}
}
您想使用 indexOf(guess) > -1 来检查数组的任何索引处是否存在猜测。如果只检查一个索引位置,则为 indexOf(guess) == 0.
最终我会提示用户猜测,然后最终会更改,因此无论用户输入什么,它都会始终将第一个字母大写并将其余字母小写。 (我这样做是为了如果用户输入猜测字符串将匹配或不匹配数组中的值。)我尝试做一个 for 语句来使用循环计数器(我正在寻找总共 3 个猜测)。但是当我尝试使用 indexOf 检查数组时,我在包含 indexOf 语句的那一行上不断收到 "unexpected token" 错误。所以问题是(1)我在这行代码中做错了什么?
//declare variables
var sportsArray = new Array("Football", "Basketball", "Rollerblading", "Hiking", "Biking", "Swimming");
var name = prompt("Enter your name");
var loops = 0;
var score = 0;
var sGuess = prompt("enter your sport guess");
// uses substrings to ultimately capitalize the 1st letter, and make everything after it lowerCase.
var sFirstPart = sGuess.substr(0, 1);
var sFirstCap = sFirstPart.toUpperCase();
var sSecondPart = sGuess.substring(1, sGuess.length);
var sSecondLow = sSecondPart.toLowerCase();
var usableGuess = sFirstCap + sSecondLow;
while(loops < 4){
if(sportsArray.indexOf(usableGuess) = 0 {
document.write("nice guess");
loops++;
}else {
document.write("loser");
loops++;
}
}
sportsArray.indexOf(usableGuess) === 0)
而不是 sportsArray.indexOf(usableGuess) = 0
检查左侧常量是否相等是一个好习惯。它会在大多数浏览器中抛出异常:
var a = 3;
if (12 = a) { // throws ReferenceError: invalid assignment left-hand side in Firefox
//do something
}
另外:使用提供静态代码分析的工具。 jslint.com or jshint.com for js is a good choice. There are also IDE plugins explicitely for that (using either of those two and more), see Is there a working JSLint Eclipse plug-in?.
这适用于检查整个数组:
var sportsArray = new Array("Football", "Basketball", "Rollerblading", "Hiking", "Biking", "Swimming");
var name = prompt("Enter your name");
var loops = 0;
var score = 0;
var sGuess = prompt("enter your sport guess");
// uses substrings to ultimately capitalize the 1st letter, and make everything after it lowerCase.
var sFirstPart = sGuess.substr(0, 1);
var sFirstCap = sFirstPart.toUpperCase();
var sSecondPart = sGuess.substring(1, sGuess.length);
var sSecondLow = sSecondPart.toLowerCase();
var usableGuess = sFirstCap + sSecondLow;
while(loops < 4){
if(sportsArray.indexOf(usableGuess) > -1) {
document.write("nice guess");
loops++;
}else {
document.write("loser");
loops++;
}
}
您想使用 indexOf(guess) > -1 来检查数组的任何索引处是否存在猜测。如果只检查一个索引位置,则为 indexOf(guess) == 0.