在以下代码段中,pos = string.indexOf( 'e', pos + 1 )
扮演什么角色?
var string = 'To be, or not to be, that is the question';
var count = 0;
var pos = string.indexOf('e');
while ( pos !== -1 ) {
count++;
pos = string.indexOf( 'e', pos + 1 )
}
console.log(count);
答案 0 :(得分:2)
indexOf
函数的第二个参数是你想要开始在字符串中查找的索引
正如您在here
中所看到的str.indexOf(searchValue[, fromIndex])
如果在这种情况下你没有使用secondParam,你将永远获得第一个' e '的位置。 此函数计算该短语中“ e ”的数量。
答案 1 :(得分:2)
从docs开始,indexOf
需要一个额外的参数:
fromIndex (可选)
在字符串中开始搜索的索引。它可以是任何整数。默认值为0,因此搜索整个数组。如果 fromIndex< 0 搜索整个字符串。如果 fromIndex> = str.length ,则不搜索字符串并返回-1。除非 searchValue 是空字符串,否则返回 str.length 。
纯粹根据这些信息判断,整个程序的行为很容易推断出来:
e
出现的次数,使用string.indexOf
查找每次出现的次数。 string.indexOf
仅返回字符串中 first 出现的位置。通过传递和更新值为fromIndex
的{{1}},pos
通过忽略string.indexOf
之前的字符来查找e
的所有后续出现。
计数器每次都会更新,允许程序作为一个整体来计算字符串中pos
出现的次数。
答案 2 :(得分:1)
string.indexOf中的第二个参数是要开始搜索的字符串的索引。
所有这些代码都是计算句子中的e的数量。
答案 3 :(得分:1)
indexOf()
方法返回第一次出现的位置 字符串中的指定值。
语法:
string.indexOf(searchvalue,start)
返回一个数字,表示第一次出现指定searchvalue
的位置,如果永远不会出现,则返回-1
var str = "To be, or not to be, that is the question";
var n = str.indexOf("e", 5);
上面的代码返回第一次出现的字母" e"在一个字符串中,从位置5开始搜索:
更多信息:Click here
注意:indexOf()
方法区分大小写。