indexOf遇到问题

indexOf是检测‘字符’是否存在于一个字符串中。不存在返回 -1。存在返回对应的下标

var str = 'hello world';
str.indexOf('hello')  // 返回的是 下标0 
str.indexOf('l')   //返回的是2 , 它找到第一个相等的字符时直接返回下标,后面就不查找了。

 

上面是字符串的 indexOf 。 看看数组如何用 indexOf
var arr = [1,2,3,4,5,6];
arr.indexOf(1)  // 返回下标 0
这不和字符串一样的用法吗??? 。  先别急,看看下面的例子
var arr = [1,'2',3,'4','5',6];

arr.indexOf(1)  //返回下标 0 ,没有问题

arr.indexOf(2)  //返回 -1

arr.indexOf(3)  //返回下标 2

arr.indexOf('5')  //返回下标 4

arr.indexOf(5)  //返回 -1
 
为什么  arr.indexOf(2) 和  arr.indexOf(5) 返回 -1
因为 indexOf的比较不是  ==   而是 ====== 是比较 类型、值相不相等。2是number 类型。而arr里面的 ‘2’ 是字符串类型的。。 没匹配到,所以返回-1 。

我们用 indexOf 时注意查看  类型是否相同。类型不相同就返回 -1

 
posted @ 2018-03-09 14:53  小则又沐风  阅读(466)  评论(0编辑  收藏  举报