伪数组转数组实现方式

伪数组转数组方法

伪数组也叫类数组。像函数中的arguments(箭头函数除外)或者 一组元素返回的集合。

有时操作伪数组时希望能够通过数组的一些方法以方便操作。那么可以将伪数组转成数组,或者让想办法让伪数组能够直接使用真数组的方法。

以函数中的arguments为例

function foo() {
    return arguments;
}
var result = foo(2,3,4);

将伪数组转数组的方式:

  1. 创建一个空数组,通过循环将伪数组中的值添加到空数组中
var tempArr = [];
for(let i = 0; i < result.length; i++) {
    tempArr[i] = result[i];
}
console.log(tempArr) // [2,3,4]
  1. 通过上下文 调用Array原型上的slice()方法,不传任何参数
var arr = Array.prototype.slice.call(result);

// 或者

var tempArr = [];
var arr = temp.slice.call(result);
  1. 使用Es6中的Array.from()方法
var array = Array.from(result);

原型继承

  1. 使用原型继承,将伪数组的原型指向Array的原型,这样就可以使用数组的方法
result.__proto__ = Array.prototype;
// 这样伪数组就可以直接调用数组的方法
  1. jquery方法
`toArray()` 和 `makeArray()`
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,272评论 0 4
  • 首发于:segmentfault《JavaScript语言精粹 修订版》 读书笔记 之前看到这篇文章,前端网老姚浅...
    若川i阅读 898评论 0 3
  • 从不换微信头像的丽丽开始频繁换头像。 一天,她兴致勃勃地用微信对我进行照片轰炸。 “宝贝,你看我萌不萌?拍了一个上...
    Ciarlo歌阅读 65,677评论 32 246
  • ETH钱包安装攻略 首先你的有ETH收款地址,比如用 imtoken (以太坊)钱包,在钱包里面创建ETH地址,这...
    风云海滩阅读 432评论 0 0
  • 西汉,天下昌平。 蜀中。 苏家刺绣是蜀地之宝,芙蓉锦鲤更被作为贡品进献。 而我,苏锦衣。苏家的长女,立志成为劝工局...
    洛纯惜阅读 828评论 5 1