84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
當陣列元素是數字或字串的時候都可以,要是 object 就不行了
js 中物件是引用型別值,兩個物件的比較是引用的記憶體位址的比較。就像下面的程式碼:
var obj1={}; var obj2={}; obj1===obj2 //false
這兩個物件雖然看起來相等,但是引用的是堆記憶體中不同的對象,所以不相等。
inArray 的實作應該是遍歷數組,把數組的每一項與目標值進行比較,如果相等就返回索引值,不相等就返回-1,由於上面的原因,兩個分別聲明的對象引用值並不相等,所以回傳-1。
一般這樣理解,數組是一個對象,但是對像不一定是數組。 inArray作用於陣列
原始碼中isArray: Array.isArray,用的是Array.isArray, 裡面是object也可以啊,但外層必須是[]。
var obj = [{a:1}]; console.log(Array.isArray(obj)) // true
js 中物件是引用型別值,兩個物件的比較是引用的記憶體位址的比較。就像下面的程式碼:
這兩個物件雖然看起來相等,但是引用的是堆記憶體中不同的對象,所以不相等。
inArray 的實作應該是遍歷數組,把數組的每一項與目標值進行比較,如果相等就返回索引值,不相等就返回-1,由於上面的原因,兩個分別聲明的對象引用值並不相等,所以回傳-1。
一般這樣理解,數組是一個對象,但是對像不一定是數組。 inArray作用於陣列
原始碼中isArray: Array.isArray,用的是Array.isArray, 裡面是object也可以啊,但外層必須是[]。