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 这里不会做隐式类型转换。