JavaScript 伪数组和数组

定义

数组:一种类列表对象,它的原型中提供了遍历和修改元素的相关操作。

伪(类)数组:只有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() 方法对一个类似数组或可迭代对象创建一个新的,浅拷贝的数组实例。

猜你喜欢

转载自blog.csdn.net/Mr_Bobcp/article/details/126065475