原生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;

```

原文地址:https://www.cnblogs.com/bxbxb/p/12142167.html

时间: 2024-10-03 06:29:35

原生JS数组方法实现(一)————push()、unshift()、pop()和shift()的相关文章

原生JS数组方法(二)——reverve()、slice()、concat()、sort()

reverve 数组的倒序方法 Array.prototype.reverse = function(){ //用二分法 for(var i=0;i<this.length/2;i++){ //解构赋值 [this[i],this[this.length-1-i]] = [this[this.length-1-i],this[i]] } return this } slice 数组截取,不改变原数组,并把截取的新数组返回出去 Array.prototype.Slice =function(n=0

js中数组增删查改unshift、push、pop、shift、slice、indexOf、concat、join

js中数组增删查改unshift.push.pop.shift.slice.indexOf.concat.join 原文地址:https://www.cnblogs.com/mahmud/p/10301590.html

原生JS数组去重的几种方法

有时候我们做项目的时候往往会需要把数组里面一些重复的项去掉,但是原生JS有排序,有筛选等等,但是就是没有数组去重怎么办呢?这能怎么办,自己手动实现嘛.(以下代码直接在原型上添加的的方法,为的就是和原生JS方法类似)可以达到Array.xxx()这样的效果 第一种方法:创建空数组利用indexOf方法检测就数组的项是否在新数组中. Array.prototype.unique=function(){ var arr=[];//创建新数组 for(var i=0;i<this.length;i++)

原生js 数组的迭代的方法

一.原生js Array给我们提供很多了方法.方便我们操作数组.这些方法的参数,都需要传入一个匿名函数,匿名函数中有三个参数,分别含义是:数组中的项.该项的索引.以及数组本身. 1.filter方法:对数组每一项执行匿名函数,并返回符合条件的数组的项. 1 var testArr=[1,2,3,4,52,2]; 2 //filter 方法 3 var moreTwo=testArr.filter(function(item,index,array){ 4 return item >2; 5 })

JS数组方法汇总 array数组元素的添加和删除

js数组元素的添加和删除一直比较迷惑,今天终于找到详细说明的资料了,先给个我测试的代码^-^ var arr = new Array(); arr[0] = "aaa"; arr[1] = "bbb"; arr[2] = "ccc"; //alert(arr.length);//3 arr.pop(); //alert(arr.length);//2 //alert(arr[arr.length-1]);//bbb arr.pop(); //al

php数组以及js数组方法整理

在js中数组非常经常用到,熟练掌握数组的方法能够大大的提高对自己的变成效率,最近解除php,学得非常皮毛,遇到一个问题,自己一直陷入foreach循环如何解决的死循环中.结果一直没能很好的解决,回来讨教了一下同学,更加觉得数组的一些方法很好用,所以有必要整理一下数组的一些方法,希望自己能牢记它们. 一,js数组的操作方法: 参照w3c内容:http://www.jb51.net/w3school/js/jsref_obj_array.htm 以及<javascript权威指南>和<jQu

JS数组方法汇总 array数组元素的添加和删除 - yuzhongwusan - 博客园

body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI",Tahoma,Helvetica,Sans-Serif,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif; font-size: 10.5pt; line-height: 1.5;

js 数组方法总结

Array数组: length属性 可通过array.length增加或者减少数组的长度,如;array.length=4(数组长3,第四位为undefined),也可单纯获得长度.array[array.length]=''赋值. 检测数组 检测是否数组ES3  instanceof array  ES5新增的Array.isArray(),支持的IE9+,Opera 10.5+,Chrome,Safari5+. 一:原数组不变  [,start],表示0或1个参数 concat() 无参,返

JS 数组方法 array数组声明 元素的添加和删除 等

声明数组 var arr1 = [1,2,3,4,5]; var arr2 = new Array(100); //声明长度为100的arr2数组. arr2=[]; arr2.length = 100; var arr3 = new Array([1,2,3,4,5]); //是一个二维数组. arr3 = [[1,2,3,4,5]]; arr3.length = 1; arr3[0] = [1,2,3,4,5];arr3[0].length = 5; var arr4 = new Array