indexOf returns -1 表示单词的第一个字母
indexOf returns -1 for the first letter of a word
我正在尝试制作一个简单的刽子手游戏。
我将应该猜到的单词记录到控制台(游戏结束后将被删除。)
现在我试图让玩家猜测这个字母是否在单词中,如果是,它应该会自己显示出来。
但是我这里的问题是:我用的是indexOf()
。
单词的第一个字母是-1而不是0,
不在单词中的字母也是-1。
所以我无法真正检查它是否是一个可用的字母,因为第一个字母总是 returns -1。我添加了屏幕截图以使其更加清晰。
注意 'H' 是单词的第一个字母:Hond。
以及警报框如何表示它位于 -1 的索引处。
这是我使用的函数:
function guessLetter(letter){
var letterVal = letter.value;
alert(rand.indexOf(letterVal));
}
rand
是用来存储随机词的变量。
The first letter of the word is -1 instead of 0
没有。单词的第一个字母由索引 0
表示。如果 indexOf
在字符串 Hond
中没有找到字母 h
,那有不同的原因:它使用区分大小写的比较。在这种情况下产生 -1
是正确的结果。
对于不区分大小写的搜索,只需确保所有字母的大小写相同:
alert(rand.toLowerCase().indexOf(letterVal.toLowerCase()) > -1
? "It's there"
: "It's not there");
为了揭示猜出的字母,indexOf
似乎不是正确的工具。最好使用类似
的东西
var rand = "Hond";
var guesses = [];
for ( /* every guess */ ) {
guesses.push(guess.toLowerCase());
var revealed = "";
for (var i=0; i<rand.length; i++)
if (guesses.indexOf(rand[i].toLowerCase() > -1)
revealed += rand[i];
else
revealed += "_";
}
show(revealed);
}
如果您的搜索区分大小写,则 'Hond' 中没有 'h'。点击 'o' 会显示什么?它应该显示 1.
尝试将单词转换为大写或小写,然后进行比较。
我正在尝试制作一个简单的刽子手游戏。 我将应该猜到的单词记录到控制台(游戏结束后将被删除。) 现在我试图让玩家猜测这个字母是否在单词中,如果是,它应该会自己显示出来。
但是我这里的问题是:我用的是indexOf()
。
单词的第一个字母是-1而不是0,
不在单词中的字母也是-1。
所以我无法真正检查它是否是一个可用的字母,因为第一个字母总是 returns -1。我添加了屏幕截图以使其更加清晰。
注意 'H' 是单词的第一个字母:Hond。 以及警报框如何表示它位于 -1 的索引处。
这是我使用的函数:
function guessLetter(letter){
var letterVal = letter.value;
alert(rand.indexOf(letterVal));
}
rand
是用来存储随机词的变量。
The first letter of the word is -1 instead of 0
没有。单词的第一个字母由索引 0
表示。如果 indexOf
在字符串 Hond
中没有找到字母 h
,那有不同的原因:它使用区分大小写的比较。在这种情况下产生 -1
是正确的结果。
对于不区分大小写的搜索,只需确保所有字母的大小写相同:
alert(rand.toLowerCase().indexOf(letterVal.toLowerCase()) > -1
? "It's there"
: "It's not there");
为了揭示猜出的字母,indexOf
似乎不是正确的工具。最好使用类似
var rand = "Hond";
var guesses = [];
for ( /* every guess */ ) {
guesses.push(guess.toLowerCase());
var revealed = "";
for (var i=0; i<rand.length; i++)
if (guesses.indexOf(rand[i].toLowerCase() > -1)
revealed += rand[i];
else
revealed += "_";
}
show(revealed);
}
如果您的搜索区分大小写,则 'Hond' 中没有 'h'。点击 'o' 会显示什么?它应该显示 1.
尝试将单词转换为大写或小写,然后进行比较。