js源码-自定义数组的pop和shift方法

本文将自定义_pop和_shift来模拟数组的pop和shift方法

_pop:

/*
*js中数组的pop方法:删除数组的最后一个元素,把数组的长度减1,并且返回删除的这个元素;如果数组为空,则pop()不改变数组,并且返回undefined;
*/
Array.prototype._pop=function(){//自定义一个方法_pop
    if(!this.length) return undefined; //如果数组的长度为零,调用该方法的时候,直接返回一个undefined
    var end=this[this.length-1]; //获取最后一个值赋值给变量end;
    this[this.length-1]=null;    //把最后一个值释放掉
    this.length=this.length-1;   //把数组的长度减1
    return end;                  //返回被尾部被删除的元素
}
var eg=[1,2,3,4];                //例子
var resultdata=eg._pop();        //执行数组方法
console.log(eg,resultdata);        //执行结果

_shift:

/*
*js中数组的操作方法shift(),用于把数组的第一个元素从其中删除。并返回第一个元素的值;
*/
Array.prototype._shift=function(){//在数组的原型链上自定义——shift方法
    var start=this[0]; //存储数组中第一个元素
    this[0]=null;//然后把数组中的第一个元素释放
    for(var i=0;i<this.length;i++){//数组元素做一个循环遍历
        this[i]=this[i+1];//数组中,元素的前一个元素跟后一个元素交换位置
    }
    this.length=this.length-1;//去除数组的最后一位元素
    return start;//返回数组中的第一个元素
}
var eg=[1,23,34,3434,34345];//例子
var result=eg._shift();//执行方法,并且获取返回值
console.log(eg,result);//执行结果
原文地址:https://www.cnblogs.com/nimon-hugo/p/14510414.html