JavaScript怎么将伪数组转换成数组
导读:本文共1995字符,通常情况下阅读需要7分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: 什么是伪数组?伪数组的主要特征:它是一个对象,并且该对象有length属性比如:letarrayLike={"0":"a","1":"b","2":"c","length":3}像上面的arrayLike对象,有l... ...
目录
(为您整理了一些要点),点击可以直达。伪数组的主要特征:它是一个对象,并且该对象有length
属性
比如:
像上面的arrayLike
对象,有length
属性,key
也是有序序列。可以遍历,也可以查询长度。但却不能调用数组的方法。比如push、pop
等方法。
在ES6
之前,还有一个常见的伪数组:arguments
。
arguments
看上去也很像一个数组,但它没有数组的方法。
比如arguments.push(1)
,这样做一定会报错。
除了arguments
之外,NodeList
对象表示节点的集合也是伪数组,比如通过document.querySelectorAll
获取的节点集合等。
将伪数组转换成真正的数组的方法不止一个,我们先从ES5
讲起。
在 ES6 问世之前,开发者通常需要用以下的方法把伪数组转换成数组。
这个方法虽然有效,但要多写很多代码。
这个方法的功能和 方法1 是一样的,虽然代码量减少了,但不能很直观的让其他开发者觉得这是在转换。
直到 ES6 提供了Array.from方法完美解决以上问题。
Array.from
的主要作用就是把伪数组和可遍历对象转换成数组的。
说“主要作用”的原因是因为Array.from
还提供了2个参数可传。这样可以延伸很多种小玩法。
Array.from
的第二个参数是一个函数,类似 map遍历 方法。用来遍历的。
Array.from
的第三个参数接受一个 this 对象,用来改变 this 指向。
创建长度为5的数组,且初始化数组每个元素都是1
第二个参数的作用和 map遍历 差不多的,所以 map遍历 有什么玩法,这里也可以做相同的功能。就不多赘述了。
如果传一个真正的数组给Array.from
会返回一个一模一样的数组。
JavaScript怎么将伪数组转换成数组的详细内容,希望对您有所帮助,信息来源于网络。