2
头图

pop()

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

//myPop()
// 还得考虑当数组为空的情况

Array.prototype.myPop = function ( ) {
     // 当传入的数组为空时
     if(this.length == ''){
          return undefined;
     }else{
          var result = this[this.length - 1];
          this.length--;
          return result;
     }
}
// 当数组为空时
var arr = []
// var arr = [2,4,4,5,6];  //6  返回最后一个元素6
// console.log(arr);
var result = arr.myPop();
console.log(result);  //undefined

push()

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

//myPush()

Array.prototype.myPush = function (params) {
     for(var i = 0; i < arguments.length;i++){
          //把新增元素放到数组的最后位置
          this[this.length] = arguments[i];

     }
     return this.length;
}
var arr = [1,4,2,9];
console.log(arr);
var result = arr.myPush(1,3,4);
console.log(arr);
console.log(result); //[1, 4, 2, 9, 1, 3, 4]

shift()

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

//shift

Array.prototype.myShift = function (params) {
     var result = this[0];
     for(var i = 0;i < this.length;i++){
          this[i] = this[i + 1];
          
     }
     this.length--;
     return result;
}
var arr = [1,4,2,9];
var result = arr.myShift(); 
console.log(result);  //删除后的元素 1  

unshift()

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


Array.prototype.myunShift = function (params) {
     var sum = this.length + arguments.length;
     //sum就是8  并赋值给i   i = 8
     for(var i = sum; i > 0;i--){
          if(i > arguments.length){
               //把原数组的元素向后移位
               this[i - 1] = this[i - 1 -arguments.length];
          }else{
               // i变成传入实参的长度  下标索引0,1,2,3
               this[i - 1] = arguments[i - 1];
          }
     }
     return sum;
}
var arr = [1,4,2,9];
console.log(arr);   // 
var result = arr.myunShift('a','b','i','o'); 
console.log(arr);  // 
// [
//      'a', 'b', 'i', 'o',
//      1,   4,   2,   9
//    ]
console.log(result);  // 8     //返回新的长度

完事了。。。。。。


云绮棠兮
48 声望10 粉丝

当野心追赶不上才华,便静下心来努力