1.push() 和 pop() 栈的方法 后进先出
push() 该方法是向数组末尾添加一个或者多个元素,并返回新的长度。
push()
方法可以接收任意数量的参数,把它们逐个添加到数组的末尾,并返回修改后数组的长度
POP() 方法刚好和push()
方法相反。pop()
方法删除数组的最后一个元素,把数组的长度减1
,并且返回它被删除元素的值,如果数组变为空,则该方法不改变数组,返回undefine
值
unshift()添加元素 和 shift()删除元素 队列的方法 先进先出
unshift()
方法 是向数组的开头添加一个或多个元素,并且返回新的长度。
shift()
方法 和 unshift()
方法恰恰相反。该方法用于把数组的第一个元素从其中删除,并返回被删除的值。如果数组是空的,shift()
方法将不进行任何操作,返回undefined
的值
简单得回忆一下:
-
push()
方法可以在数组的末属添加一个或多个元素 -
shift()
方法把数组中的第一个元素删除 -
unshift()
方法可以在数组的前端添加一个或多个元素 -
pop()
方法把数组中的最后一个元素删除
push 和 unshift 的性能测试
Array的push()
与unshift()
方法都能给当前数组添加元素,不同的是,push()
是在末尾添加,而unshift()
则是在开头添加,从原理就可以知道,unshift()
的效率是较低的。原因是,它每添加一个元素,都要把现有元素往下移一个位置。但到底效率差异有多大呢?下面来简单测试一下。
下面是 chrome的运行结果
可见,unshift()
比push()
要慢差不多100
倍!因此,平时还是要慎用unshift()
,特别是对大数组。那如果一定要达到unshift()
的效果,可以借助于Array的reverse()
方法,Array的reverse()
的方法能够把一个数组反转。先把要放进数组的元素用push()
添加,再执行一次reverse()
,就达到了unshift()
的效果
且花费时间很少 性能极高。
总结