13-JavaScript之数组方法重构

本文介绍了JavaScript中四个重要的数组操作方法:pop()、push()、shift()和unshift()的自定义实现。通过示例展示了它们如何删除或添加数组元素,并返回相关结果。pop()移除并返回数组最后一个元素,push()在末尾添加元素并返回新长度,shift()移除并返回数组第一个元素,unshift()在开头添加元素并返回新长度。
摘要由CSDN通过智能技术生成

pop() 方法用于删除数组的最后一个元素并返回删除的元素。

Array.prototype.myPop = function () {
  var temp = this[this.length - 1];
  this.length--;
  return temp;
}
var arr = [1, 2, 3, 4, 5];
console.log('我是原数组' + '---' + arr);
var result = arr.myPop();
console.log('我是被删除的元素' + '---' + result);
console.log('我是Pop后的数组' + '---' + arr);

运行结果如下在这里插入图片描述

push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。

Array.prototype.myPush = function () {
  for (var i = 0; i < arguments.length; i++) {
    this[this.length] = arguments[i];
  }
  return this.length;
}
var arr = [1, 2, 3, 4, 5];
console.log('我是原数组' + '---' + arr);
var result = arr.myPush('hello', 'a');
console.log('我是push后的新数组长度' + '---' + result);
console.log('我是Push后的数组' + '---' + arr);

运行结果如下
在这里插入图片描述

shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。

Array.prototype.myshift = function () {
  var result = this[0];
  for(i=0;i<this.length;i++){
    this[i]=this[i+1];
  }
  this.length--;
  return result;
}
var arr = [1, 2, 3, 4, 5];
console.log('我是原数组' + '---' + arr);
var result = arr.myshift();
console.log('我是被删除的第一个元素' + '---' + result);
console.log('我是shift后的数组' + '---' + arr);

运行结果如下
在这里插入图片描述

unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。

Array.prototype.myUnshift = function () {
  var result = this.length + arguments.length;
  for (var i = result; i > 0; i--) {
    if (i > arguments.length) {
      this[i - 1] = this[i - 1 - arguments.length]
    } else {
      this[i - 1] = arguments[i - 1];
    }
  }
  return result;
}
var arr = [1, 2, 3];
console.log('我是原数组' + '---' + arr);
var result = arr.myUnshift('a','b','c');
console.log('我是unshift后的数组' + '---' + arr);
console.log('我是新数组的length'+'---'+result);

运行结果如下
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值