原生JS数组方法实现(一)————push()unshift()pop()和shift()

Posted bxbxb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了原生JS数组方法实现(一)————push()unshift()pop()和shift()相关的知识,希望对你有一定的参考价值。

push

向数组末尾添加一个或多个元素,并返回数组新的长度

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

unshift

向数组开头添加一个或多个元素,并且返回数组新的长度

function unshift(){
    //创建一个新数组接收添加的元素
    let newAry = [];
    for(let i=0;i<arguments.length;i++){
        newAry[i] = arguments[i];
    }
    let len = newAry.length;
    for(let i=0;i<this.length;i++){
        newAry[i+len] = this[i];
    }
    for(let i=0;i<newAry.length;i++){
        this[i] = newAry[i];
    }
    return this.length;
}
Array.prototype.unshift = unshift;

pop

删除数组最后一项,并返回该删除项目

function pop(){
    let returnVal = this[this.length-1];
    this.length--;
    return returnVal
}
Array.prototype.pop = pop;

shift

删除数组第一项,并且返回该删除项目

function shift(){
    let newAry = [];
    let reVal = this[0];
    for(let i=0;i<this.length-1;i++){
        newAry[i] = this[i+1];
    }
    for(let i=0;i<newAry.length;i++){
        this[i] = newAry[i]
    }
    this.length--;
    return reVal;
}
Array.prototype.shift = shift;

```

以上是关于原生JS数组方法实现(一)————push()unshift()pop()和shift()的主要内容,如果未能解决你的问题,请参考以下文章

如何监听JS数组的变化

JS 的一些原生属性

原生JS数组对象去重方法

js 数组去重方法

js数组的push操作会返回一个最新的数组

js创建1-100的数组