定義:javascript
length
屬性和數值下標屬性。僞數組是一個Object
,而真實的數組是一個Array
arguments
HTMLCollection
():好比經過document.getElementsByTagName
獲得的列表jquery
對象:好比$("div")
經過document.getElementsByTagName
獲得的DOM對象列表是一個僞數組。html
<ul> <li>test1</li> <li>test2</li> <li>test3</li> <li>test4</li> </ul>
const lis = document.getElementsByTagName('li'); console.log(lis); // HTMLCollection(4) [li, li, li, li]
Object
,而真實的數組是一個Array
console.log(lis instanceof Array); // false console.log(lis instanceof Object); // true
length
屬性和數值下標屬性console.log(lis[1]); // <li>test2</li> console.log(lis.length); // 4
console.log(lis.forEach) //undefined lis.forEach((ele) => console.log(ele))
真實數組的forEach()
方法:java
const ll = [1,2,3]; ll.forEach((ele) => console.log(ele))
Array.prototype.slice.call(lis)
將僞數組轉換爲真數組// Array.prototype.slice.call(lis):將僞數組轉換爲真數組 const lis2 = Array.prototype.slice.call(lis); // 至關於 lis.slice() console.log(lis2 instanceof Array); //true console.log(lis2 instanceof Object); //true console.log(lis2[1]); // <li>test2</li> console.log(lis2.forEach); // ƒ forEach() { [native code] }
數組的slice()
截取數組中指定部分的元素, 生成一個新的數組 [1, 3, 5, 7, 9], slice(0, 3)
jquery
// slice2() Array.prototype.slice2 = function (start, end) { start = start || 0 end = start || this.length const arr = [] for (var i = start; i < end; i++) { arr.push(this[i]) } return arr }