1、伪数组特点
+ 伪数组是一个对象
+ 必须具有length属性
+ 如果length值不为 0 ,必须按照下标存储数
+ 伪数组进行map、forEach遍历时,会报错
2、常见伪数组
+ 函数内部的arguments
+ 获取到的DOM对象集合
- document.getElementsByTagName('');
- document.getElementsByClassName('');
- ...
+ jQuery对象
- $("div");
- $(".className");
- ...
3、伪数组与数组的区别
+ 伪数组不具有数组所具有的方法
+ 对象没有数组 Array.prototype 的属性值,类型是 Object ,而数组类型是 Array
+ 数组是基于索引的实现, length 会自动更新,而对象是键值对
+ 使用对象可以创建伪数组,伪数组可以正常使用数组的大部分方法
4、伪数组转成真数组
<!-- html片段 -->
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
// 方法一 : 创建新数组
var oLi = document.querySelectorAll('li');
var arr1 = [];
for( var i = 0;i < oLi.length;i ++ ){
arr1.push(oLi[i]);
}
// 方法二 : slice 方法
var arr2 = Array.prototype.slice.call(oLi);
// 方法三 : ES 6中数组新方法——from()
var arr3 = Array.from(oLi);
网友评论