我在刚开始学习 JS 的时候经常会遇到一个问题。比如在使用 document.getElementsByTagName(tagName)时选出的元素合集。这个元素合集具有 length 属性,也有索引,但是不具备数组的方法,这个就是伪数组。
那我们先说说什么是伪数组。一个伪数组应该具有以下条件:
- 具有 length 属性;
- 按索引方式储存数据;
- 具有数组的 push,pop 等方法;
常见的伪数组一般出现在 getElementByTagName()方法选出的元素和函数内部的 arguments 中。
说了这么多,那么我们应该怎么解决这个问题,如何将一个数组转换为一个标准的数组以使用数组方法?
方法一:
1 | //for...in遍历 |
方法二:
1 | //使用Array.prototype.call(); |
以上是个人的一点拙见,有误请指出。
[越努力,越幸运!]