类数组对象转为数组的方法

  在开发的过程经常会遇到一些类数组对象,例如arguments,类数组对象具有length属性,也可以通过下标访问到对应值,但是不能使用数组的方法,如果将类数组对象转为数组,数组方法可以帮助我们更快实现逻辑,下面列举一些常见的转换方法。

循环遍历

  根据arguments可以通过下角标获取对应值的特性,很容易可以想到通过循环遍历将arguments的值添加到新数组中,来实现转化,代码如下图:

slice函数

  可能有人会有疑问,slice函数不是数组的方法吗,类数组对象不是不能调用数组方法吗?

  这个问题的答案与循环遍历采取的方式有些相似,就是类数组对象不能调数组方法,那咱们就找个数组调用。slice函数不传参数时,表示对调用该函数的数组对象内容的全部截取,也就是说只要想办法把slice截取内容的对象修改为arguments就可以了。

  这个时候,我们不难想到可以通过aplly,call,bind等方法修改this指向,代码如下图:

Array对象

  利用Array对象提供的from方法,直接将类数组对象转化为数组,代码如下图:

  通过Array对象的prototype属性,获取显式原型对象,调用slice方法,代码如下图:

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值