伪数组 与真数组的区别

当我们了解伪数组之前先了解下普通的数组的特点

数组是用来存储一系列值的一个集合,而每个值在数组里面都有一个对应的索引,也可以叫做下标,索引是从0开始的,依次递增。
比如:

let arr = ['a','b','c']

字符串a,b,c对应的下标分别为0, 1, 2,使用 数组名字[索引] 的方法即可取到对应的值。
1
2
数组的length为数组当中所存值的总个数,比如上方定义的arr数组的length就是3。

伪数组的介绍:
伪数组我们可以理解为类似数组的一个集合,我们常见的有俩个,一个是arguments还有一个是DOM的children属性,获取回来的子节点集合。他们与数组一样,具有索引(下标)和length属性。可以通过for循环写循环语句去循环遍历。我们可以简单看一下伪数组的样子:
arguments伪数组的样子:

children伪数组的样子:

伪数组与数组的区别:
伪数组与数组的区别就是它们的proto区别,

ES5新增数组遍历迭代的方法
而伪数组却没有,所以我们称这类解构类似数组却没有数组方法的集合叫做伪数组。

将伪数组变成真数组的方法:

// 假设我们获取到了一个一个页面的所有div,这就是一个伪数组。

const fakeArr = document.getElementsByTagName('div')

// 我们可以进行重新赋值也可以用一个新变量接收或者在上方就进行转换简写都可以,笔者拿个新变量接收他。
// 如果你要重新赋值别忘了将const变成let。

const realArr = Array.prototype.slice.call(fakeArr);
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容