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 时注意查看类型是否相同。类型不相同就返回 -1indexof能用于数组吗
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论