1.伪数组是什么
定义:
1、拥有length属性,其它属性(索引)为非负整数(对象中的索引会被当做字符串来处理,这里你可以当做是个非负整数串来理解)。
2、不具有数组所具有的push,pop等方法。
2. 如何区别伪数组
- 1、伪数组是一个对象。
- 2、这个对象必须要有length属性。且必须是number类型。
- 3、如果这个对象的length不为0,那么必须要有按照下标存储的数据。
- 4、伪数组不可以使用数组中的方法(.forEach)。
- 5、但是伪数组的长度不可变。真数组的长度是动态可变的。
转换的方法有哪些呢
//通过call调用数组的slice方法来实现转换
1. Array.prototype.slice.call(arrayLike)
//通过call调用数组的splice方法来实现转换
2. Array.prototype.splice.call(arrayLike,0)
//通过apply调用数组的concat方法来实现转换
3. Array.prototype.concat.apply([],arrayLike)
//通过Array.from方法来实现转换
4. Array.from(arrayLike)