无法获得indexOf语句

时间:2016-03-12 20:02:24

标签: javascript indexof

最终我提示用户猜测,然后最终改变,所以无论用户输入什么,它总是大写第一个字母并将其余的小写。 (我这样做,所以如果用户键入猜测字符串将匹配或不匹配数组中的值。)我尝试做一个for语句使用循环计数器(3总猜测是我正在寻找的)。但是当我尝试使用indexOf来检查数组时,我不断得到一个"意外的令牌"包含indexOf语句的那一行上的错误。所以问题是(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++;
    }
}

2 个答案:

答案 0 :(得分:1)

这适用于检查整个数组:

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)&gt; -1检查猜测是否存在于数组的任何索引处。为了只检查一个索引位置,它将是indexOf(guess)== 0。

答案 1 :(得分:0)

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
}

另外:使用提供静态代码分析的工具。 js的jslint.comjshint.com是一个不错的选择。还有明确的IDE插件(使用这两者中的任何一个或更多),请参阅Is there a working JSLint Eclipse plug-in?