JavaScript - indexOf基础知识

时间:2016-04-02 03:13:26

标签: javascript

在以下代码段中,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);

4 个答案:

答案 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中的第二个参数是要开始搜索的字符串的索引。

请参阅此处 - https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf#Parameters

所有这些代码都是计算句子中的e的数量。

答案 3 :(得分:1)

  

indexOf()方法返回第一次出现的位置   字符串中的指定值。

语法:

string.indexOf(searchvalue,start)
  • 搜索值 - [必需]。要搜索的字符串
  • 开始 - [可选]。默认值0.在哪个位置开始搜索

返回一个数字,表示第一次出现指定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()方法区分大小写。