在发散思维前先介绍一下基本知识;

定义与用法:

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


这里基本用法大家一般都清楚,一般在实际工作中常与数组的方法合用来对数组进行一些操作。
例如:

var arr=['Mike','Chen Jie','Amy','Sarah'];//将Amy从数组中删除arr.splice(arr.indexOf('Amy'),1)//将Amy替换为Zhang Peng,并追加Wu Yifan,Miss Whitearr.splice(arr.indexOf('Amy'),1,'Zhang Peng','Wu Yifan','Miss White')

下面介绍一下第二个参数的用法,可指定在字符串中开始检索的位置,这个可以用来快速查找字符串中出现某个字母的位置及次数。
例如:

var str='what is your name? my name is Jhon.'var positions=new Array();//初始化索引var index=str.indexOf('m');while(index>-1){    positions.push(index);    //改变索引    index=str.indexOf('m',index+1);}console.log(positions)// [15, 19, 24]

这个例子主要是通过不断增加str.indexOf的初始查找的位置,从而遍历了整个字符串。
下面介绍一个indexOf的兄弟方法:

定义与用法

lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。
参数上差不多,这里不做太多介绍,lastIndexOf和indexOf的区别就是lastIndexOf是从后往前查,可以用于检测字符串中某个字母的唯一性;

var str='hello world';str.lastIndexOf('w')===str.indexOf('w')

这里如果结果为true,并且不等于-1的话可以验证字母的唯一性;