zoukankan      html  css  js  c++  java
  • 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);//执行结果
  • 相关阅读:
    P2009 跑步
    P3916 图的遍历
    P2865 [USACO06NOV]路障Roadblocks
    P2820 局域网
    P2176 [USACO14FEB]路障Roadblock
    讨伐!数论
    网络流入门——EK算法
    最被低估的特质
    我的天哪我有博客了!
    Area POJ
  • 原文地址:https://www.cnblogs.com/nimon-hugo/p/14510414.html
Copyright © 2011-2022 走看看