Javascript indexOf返回单词第一个字母的-1

Javascript indexOf返回单词第一个字母的-1,javascript,indexof,Javascript,Indexof,我想做一个简单的刽子手游戏。 我把应该猜到的单词记录在控制台上(当游戏结束时,这个单词将被删除) 现在我试着让玩家猜这个字母是否在单词中,如果是的话,它应该会显示出来 但我的问题是:我使用indexOf()。 单词的第一个字母是-1而不是0, 此外,单词中没有的字母是-1。 因此,我无法真正检查它是否是可用的字母,因为第一个字母总是返回-1。我添加了一个屏幕截图,使其更加清晰 注意“H”是单词Hond的第一个字母。 以及alertbox如何表示它的索引为-1 这是我使用的函数: functio

我想做一个简单的刽子手游戏。 我把应该猜到的单词记录在控制台上(当游戏结束时,这个单词将被删除) 现在我试着让玩家猜这个字母是否在单词中,如果是的话,它应该会显示出来

但我的问题是:我使用
indexOf()
。 单词的第一个字母是-1而不是0, 此外,单词中没有的字母是-1。 因此,我无法真正检查它是否是可用的字母,因为第一个字母总是返回-1。我添加了一个屏幕截图,使其更加清晰

注意“H”是单词Hond的第一个字母。 以及alertbox如何表示它的索引为-1

这是我使用的函数:

function guessLetter(letter){
    var letterVal = letter.value;

    alert(rand.indexOf(letterVal));
}
rand
是用于存储随机字的变量

单词的第一个字母是-1而不是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);
}
var rand=“Hond”;
var猜测=[];
对于(/*每个猜测*/){
push(guess.toLowerCase());
var=”;
对于(变量i=0;i-1)
披露+=兰特[i];
其他的
显示+=”;
}
显示(显示);
}
单词的第一个字母是-1而不是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);
}
var rand=“Hond”;
var猜测=[];
对于(/*每个猜测*/){
push(guess.toLowerCase());
var=”;
对于(变量i=0;i-1)
披露+=兰特[i];
其他的
显示+=”;
}
显示(显示);
}
单词的第一个字母是-1而不是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);
}
var rand=“Hond”;
var猜测=[];
对于(/*每个猜测*/){
push(guess.toLowerCase());
var=”;
对于(变量i=0;i-1)
披露+=兰特[i];
其他的
显示+=”;
}
显示(显示);
}
单词的第一个字母是-1而不是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);
}
var rand=“Hond”;
var猜测=[];
对于(/*每个猜测*/){
push(guess.toLowerCase());
var=”;
对于(变量i=0;i-1)
披露+=兰特[i];
其他的
显示+=”;
}
显示(显示);
}

如果您的搜索区分大小写,“Hond”中没有“h”。单击“o”会显示什么?它应该显示1


尝试将单词转换为大写或小写,然后进行比较。

如果您的搜索区分大小写,则“Hond”中没有“h”。单击“o”会显示什么?它应该显示1


尝试将单词转换为大写或小写,然后进行比较。

如果您的搜索区分大小写,则“Hond”中没有“h”。单击“o”会显示什么?它应该显示1


尝试将单词转换为大写或小写,然后进行比较。

如果您的搜索区分大小写,则“Hond”中没有“h”。单击“o”会显示什么?它应该显示1


尝试将单词转换为大写或小写,然后进行比较。

这表示字母不包含在单词中(不是索引为
-1
)。这表示字母不包含在单词中(不是索引为
-1
)。这表示字母不包含在单词中(不是索引为
-1
)。它表示字母不包含在单词中(不是索引为
-1
)。如果我单击“o”,则显示1。问题确实是区分大小写。谢谢!:如果我单击“o”,则显示1。问题确实是区分大小写。谢谢!:如果我单击“o”,则显示1。问题确实是区分大小写。谢谢!:如果我单击“o”,则显示1。问题确实是区分大小写。谢谢!:D