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 時注意查看  類型是否相同。類型不相同就返回 -1spa

相關文章
相關標籤/搜索