定义
数组:一种类列表对象,它的原型中提供了遍历和修改元素的相关操作。
伪(类)数组:只有length属性、不具有Array对象方法且按索引方式存储的对象。
常见的伪数组
- 函数的参数对象arguments;
- 用querySelectorAll获得的集合;
- 用getElementsByName/ClassName/TagName获得的集合;
- 自定义类数组,eg. let arrLike = {0:‘a’,1:‘A’,length:2}。
伪数组与数组相互转换
1、数组转换成伪数组
这里与其说转换不如说是伪数组生成方法,借一个空数组调用push方法,同时通过apply改变this绑定为obj,传入数组arr。
const arrOr = [1, 2, 3];
const objOr = {
};
Array.prototype.push.apply(objOr, arrOr);
console.log(objOr);
//{0: 1, 1: 2, 2: 3, length: 3}
2、伪数组转换成数组
- Array.prototype.push.call(arrayLike)
- […arrayLike]
- Array.from(arrayLike)>>Array.from() 方法对一个类似数组或可迭代对象创建一个新的,浅拷贝的数组实例。