实现JS中push,pop,unshift,shift的功能

push方法的实现,分析push的功能:向数组中添加接受的参数,可接受不同的数据类型,也可以接受多个参数,且返回最终数组的长度

Array.prototype.push = function () {
    var argLength = arguments.length;
    var arrLength = this.length;
    for (var i = 0; i < argLength; i++) {
      this[arrLength + i] = arguments[i];
    }
    return this.length;
  };

pop方法的实现,分析pop的功能:删除数组的最后一位,且返回删除的值

Array.prototype.pop = function () {
    var arrLength = this.length;
    var deleteObj = this[arrLength - 1];
    this.length = arrLength - 1;
    return deleteObj;
  };

shift方法的实现,分析shift的功能:删除数组的第一项,并返回被删除的值

Array.prototype.shift = function () {
    var arrLength = this.length;
    var deleteObj = this[0];
    for (var i = 0; i < arrLength; i++) {
      this[i] = this[i + 1];
    }
    this.length -= 1;
    return deleteObj;
  };

unshift方法的实现,分析unshift的功能:在数组第一位前加入新的项,可以传入多个参数,且可以是不同类型,且返回最终数组的长度

Array.prototype.unshift = function () {
    var argulength = arguments.length;
    var arrLength = this.length;
    for (var i = arrLength; i >= 0; i--) { //这里必须倒着赋值,因为顺着如果arguments的长度小于原数组的长度,那么会覆盖原数组的数据
      this[i + argulength - 1] = this[i - 1]
    }
    for (var i = 0; i < argulength; i++) {
      this[i] = arguments[i]
    }
    return this.length;
  };

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值