如何实现和使用JS数组,平移,流行,转移方法

  介绍

这篇文章主要讲解了如何实现和使用JS数组,平移,流行,转移方法,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。

<强>尾部添加(推)

从解释中可以看的出,推动方法只要将要添加的元素依次放到数组的最后即可,不会改变原有数组元素的索引。所以循环参数列表,将新元素依次放到数组的最后即可。

Array.prototype。_push=function(…值){   (var=0;我& lt;arguments.length;我+ +){   这个(这个。长度]=参数[我]   }   返回this.length   }   var arr=(1、2、3、4)   加勒比海盗。_push (9, 8)   console.log (arr)//[1、2、3、4、9、8]

向数组的头部添加元素,数组的长度也会发生变化,但不像尾部添加的操作,数组原有元素索引不改变。做头部添加的操作,需要将原有元素的索引向右移动。

例如只添加一位,则需要将数组的每个元素的索引依次向右移一位,假设原来数组长度是4,头部添加一个元素,长度变为5 .

所以现在就变成:<代码>数组。长度=5> 数组(5 - 1)是最后一个元素,现在由于依次往后移动,所以,<代码>阵列[5]>

所以我们可以从数组的最后一位的下一位往前循环,将<代码>[我]> 阵列[i - 1]>

过程如下

如何实现和使用JS数组,平移,流行,转移方法

具体代码实现:

Array.prototype。_unshift=function(值){   (让我=this.length;我在;0;我(){   这[我]=[i - 1]   }   这[0]=价值   返回this.length   }   var arr=(1、2、3、4)   arr._unshift (8)   console.log (arr);//(8,1、2、3、4)

但上面的代码只实现了一个元素的头部添加,平移方法支持添加多个元素,例如:

 var arr=(1、2、3、4)
  加勒比海盗。7 unshift(8日)
  console.log (arr);//(8、7、1、2、3、4]

针对这样的情况,需要知道传入了几个参数,可以从参数对象入手,思路还是上面的思路:

新数组的长度等于原数组的长度+参数的个数,从后往前循环,将原数组的最后一位,移动到新数组的最后一位,

因为需要在头部插入数量为入参个数的元素,所以循环的起点为原数组的长度+参数的个数,循环的终点为入参的个数。

但由于索引总是比长度少一位,所以起点和终点都需要减1 .

现在可以先把循环移动的逻辑写出来

Array.prototype。_unshift=function(…值){   我(var=(。长度+参数。长度- 1);我在;参数。长度- 1;我(){   这[我]=[i - arguments.length]   }   }

再思考一下,由于上一步已经移动完了,数组头部的位置已经空出来了,第二步是有几个参数就要插入几个元素,所以现在只需要循环插入就好:

 Array.prototype。_unshift=function(…值){
  我(var=(。长度+参数。长度- 1);我在;参数。长度- 1;我(){
  这\[我]=[i - arguments.length]
  }
  (var k=0;k & lt;arguments.length;k + +) {
  这[k]=参数[k]
  }
  返回this.length
  }
  var arr=[1、2、3、4 \]
  加勒比海盗。_unshift (9, 8)
  console.log (arr);//[9 8,1,2,3,4)

“pop()方法将删除arrayObject的最后一个元素,把数组长度减1,并且返回它删除的元素的值。如果数组已经为空,则流行()不改变数组,
并返回未定义的值”。

这个很好实现,按照定义一步一步做就可以。首先,记录下最后一个元素,便于返回,之后从数组中删除最后一个元素,
将其指向空释放掉,然后将数组的长度减1,最后判断一下是否为空数组。

Array.prototype。_pop=function () {   如果(! this.length) {   返回未定义   }   var=[这一端。长度- 1)   这个(这个。长度- 1]=零   这一点。长度=3ざ? 1   返回结束   }   var arr=(1、2、3、4)   arr._pop ()   console.log (arr);//(1、2、3)

头部删除,会改变原有数组元素的索引,也就是将未被删除的元素索引都往左移一位,首先要将被删除的元素记录下来便于返回,之后将数组第一个元素指向空,

如何实现和使用JS数组,平移,流行,转移方法