为什么使用indexOf方法时必须条件等于 0 才能找到以“A”开头的单词?
let teachers =["Alexys",
"Jon",
"Daniel",
"Francisco",
"Rafa",
"José",
"Alvaro"];
for (i = 0; i < teachers.length; i++) {
if (teachers[i].toUpperCase().indexOf("A") == 0) {
console.log(teachers[i]);
}
}
该方法
indexOf
返回作为参数传递的值第一次出现在字符串中的位置(在本例中"A"
)。如果没有找到,则返回值
-1
0
将表明在字符串的第一个位置(第一个字符)出现1
,它存在于第二个位置(第二个字符),2
在第三个等等。这样,如果字符串以它开头,
"A"
它将返回一个值,0
如果不是,它将返回一个不同的值。更多信息:String.prototype.indexOf
indexOf函数返回包含字母的第一个索引(在您的情况下为 A)。如果它没有值,它将返回-1
Javascript 有另一种方式,您不必使用Filter方法执行 for
因为indexOf由示例中的第一个字母控制,所以您希望“A”作为第一个字母,其他情况例如:
这就是为什么如果您要查找以某个字母开头的单词,您必须检查字符串的位置0,即开头的字母。
如果您使用第二个参数,您将指定从何处开始解析字符串,例如:
字符串是一个字符数组,其索引从 0 开始,如果您想知道字符串是否以特定字母开头,您必须检查它的第一次出现,即索引 0。