类数组

什么是类数组?

类数组指包含 length 属性或可迭代的对象。

顾名思义,这玩意儿肯定是个长得像数组,但又不算数组的东西。那到底是个啥,其实它就是一个对象,一个长的像数组的对象。

和数组的区别

那类数组和数组有啥区别:
1、都有length属性
2、类数组也可以for循环遍历,有的类数组还可以通过 for of 遍历
3、类数组不具备数组的原型方法,因此类数组不可调用相关数组方法(如,push,slicec,concat等等)

都有哪些类数组

常见的类数组有

函数的参数arguments
通过getElementsByTagName,getElementsByClassName等方法获取的dom列表(也叫 HTMLCollection)
通过querySelectorAll(),getElementsByName等方法获取的NodeList节点列表

 

特点

类数组都不存在数组的原型方法,但当类数组需要调用数组方法去做任何事情时,可以通过以下方式

  • 利用call,apply进行方法借用,借用数组的各自方法
  • 将类数组转换为数组。然后再调用数组方法

类数组转数组

将类数组转成数组后,就可以随意调用各自数组方法,那么类数组如何转成数组呢!

  1. 可借用数组的一些方法生成一个新数组
  2. 利用ES6新增方法转换为数组
    ES6新增了一个Array.from方法,可将类数组转为数组。还提供了展开运算符,可以直接在一个数组中展开类数组

posted on 2022-10-12 12:17  前端码牛  阅读(671)  评论(0编辑  收藏  举报

导航