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

 

转载于:https://www.cnblogs.com/xf-zhao/p/8533899.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值