伪数组 与真数组的区别

2020-03-18  本文已影响0人  lessonSam

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

数组是用来存储一系列值的一个集合,而每个值在数组里面都有一个对应的索引,也可以叫做下标,索引是从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);
上一篇 下一篇

猜你喜欢

热点阅读