僞數組的特性
如果一個對象的所有鍵名都是正整數或零,並且有length屬性,那麼這個對象就很像數組,稱爲僞數組。典型的僞數組有函數的arguments對象,以及大多數 DOM 元素集,還有字符串。
- 具有length屬性;
- 按索引方式存儲數據;
- 不具有數組的push()、pop()等方法;
舉例
例子1:
<ul>
<li>1111</li>
<li>1111</li>
<li>1111</li>
</ul>
獲取集合,控制檯打印
例子2:
argumenets 對象
僞數組轉化爲真實數組
Array.prototype.slice.call(oUL);
或者 es6 的 Array.from()
Array.from(oUL);
如何實現僞數組和僞數組轉化函數
// 一個僞數組
var obj = {
"0": "aaa",
"1": 12,
"length": 2,
"push": Array.prototype.push,
"splice": Array.prototype.splice
}
// 動態改變length,並且添加新元素到數組末尾this[this.length] = arr;
Array.prototype.push = function(arr) {
this.length++;
}
console.log(obj);
obj.push("newVal");
console.log(obj)