伪数组及转换方法总结
什么是伪数组
无法直接调用数组方法或期望length属性有什么特殊的行为,不具有数组的push,pop等方法,但仍可以对真正数组遍历方法来遍历它们。
这里把符合以下条件的对象称为伪数组:
1,具有length属性
2,按索引方式存储数据
3,不具有数组一些方法
伪数组一般出现在下面的情况下:
-
function内的arguments 。
-
通过document.forms,Form.elements,Select.options,document.getElementsByName() ,
document.getElementsByTagName() ,childNodes/children 等方式获取的集合(HTMLCollection,NodeList)等。
-
特殊写法的对象 ,如
var obj={}; obj[0] = "一"; obj[1] = "二"; obj[2] = "三"; obj.length = 3;
将伪数组转换为真数组
通常有以下几种方法
以准换 arguments 为例
-
const args = Array.prototype.slice.call(arguments)
或const args = [].prototype.slice.call(arguments)
-
const args = Array.from(arguments)
-
const args = [...arguments]
完,如有不恰当之处欢迎指正哦。
-------------------------------------------
个性签名:梦想不只是梦与想
如果您觉得这篇文章哪个地方不恰当甚至有错误的话,麻烦告诉一下博主哦,感激不尽。
如果您觉得这篇文章对你有一点小小的帮助的话,希望能在右下角点个“推荐”哦。