js:詳解js中的僞數組

僞數組的特性

如果一個對象的所有鍵名都是正整數或零,並且有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)

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章