indexOF()方法
JavaScript的String对象中有一个indexOf()方法,这个方法接收一个指定字符串参数(必须)和查找位置参数(可选)。该方法返回指定字符串在字符串中第一次出现的位置,如果没有出现,则返回”-1”。如果有传查找位置参数,则从传入的位置查起,如果没有传位置参数默认为0,即从字符串的开头查起。
说完了这个函数的功能,那么我们如何自己封装一个一样功能的方法呢?
先说思路。首先当传入了指定字符串后,我们可以将指定字符串的第一个字符作为一个变量保存起来;然后用这个变量在循环内依次和字符串相比较;如果相同,则进一步比较相同长度下,是否完全相同即可。最后返回相应的结果数值。
1 | // 重新封装String.indexOf函数 |
写完了来调用试验一下结果(调用方式与原生的方法略有不同):
1 | console.log(indexOF('xiekaifei', 'i')) // 1 |
strFind()方法
实现了这个方法后我们再来实现一个查询所有位置的方法。实现的功能是:传入字符串和指定的字符串,返回所有出现位置的数组,未找到时则返回-1。
1 | function strFind(str, findStr) { |
再调用一下:
1 | console.log(strFind('xiekaifei', 'i')) // [1, 5, 8] |
大功告成!