欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

indexOf方法

程序员文章站 2022-05-15 12:44:08
...

indexOf的定义和使用

indexOf()方法可返回某个指定的字符串值在字符串中首次出现的位置。
stringObject.indexOf(searchvalue,fromindex)

  • searchvalue:必需。规定需要检索的字符串值
  • fromindex:可选的整数参数。规定字符串中开始检索的位置。它的合法取值是0到stringObject.length-1。如省略该参数,则将从字符串的首字符开始检索。

如果要检索的字符串值没有出现,则该方法返回-1

说明:该方法将从头到尾的检索字符串stringObject,看它是否含有子串searchvalue。开始检索的位置在字符串的fromindex处或字符串的开头(没有指定fromindex时)。如果找到一个searchvalue,则返回searchvalue的第一次出现的位置。
stringObject中的字符串位置是从0开始的。

具体应用说明

String类型的使用:

返回指定字符串在此字符串中第一次出现的索引。

let str = 'apple';
str.indexOf('a'); //0
str.indexOf('l'); //3

let str='2016';
str.indexOf(2); //0
str.indexOf('1'); //0
//说明indexOf会对字符串内的数字做简单的类型转换,把数字2转换成字符串'2'然后执行。

Number类型的使用:

indexOf不会对number类型做隐式转换,如下:

let num = 2016;
num.indexOf(2); //Uncaught TypeError: num.indexOf is not a function

所以,如果非要对number类型使用indexOf方法的话,可以将number转换成字符串然后使用:

let num = 2016;
num.toString().indexOf(2); //0
//或者
(''+num).indexOf(2); //0

Array类型的使用

let array = ['hello','2017','coco'];
array.indexOf('hello'); //0
array.indexOf('o'); //-1
array.indexOf('2017'); //1
array.indexOf(2017); //-1
  • array.indexOf(‘hello’)输出0 是因为’hello’是数组的第0个因素,匹配到并返回下标。
  • array.indexOf(‘o’)输出-1 是因为indexOf方法不会在每一个元素的基础上再次执行indexOf匹配。
  • array.indexOf(‘2017’)输出1 是因为此方法从头匹配直到匹配到返回第一个数组元素的下标,而不是返回全部匹配的下标。
  • array.indexOf(2017) 输出-1 这里不会做隐式类型转换。
相关标签: js方法