在发散思维前先介绍一下基本知识;
定义与用法:
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
这里基本用法大家一般都清楚,一般在实际工作中常与数组的方法合用来对数组进行一些操作。
例如:
var arr=['Mike','Chen Jie','Amy','Sarah'];
// 将 Amy 从数组中删除
arr.splice(arr.indexOf('Amy'),1)
// 将 Amy 替换为 Zhang Peng,并追加 Wu Yifan,Miss White
arr.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 的话可以验证字母的唯一性;