Array-队列方法

队列方法

  栈数据结构的访问规则是LIFO(后进先出),而队列数据结构的访问规则是FIFO(先进先出)。队列在列表的末端添加项,从列表的前端移除。由于push()是向数值末端添加项的方法,因此要模拟队列只需要一个从数组前端获得项的方法。实现这一操作的数组方法就是shift(),它能够移除数组中的第一项并返回该项,同时将数组长度减1.结合使用shift()和push()方法,可以使用队列一样使用数组。

var colors=new Array();//创建一个数组
var count=colors.push("red","green");//推入两项
alert(count);//2

count=colors.push("black");//推入另一项
alert(count);//3

var item=colors.shift();//取得第一项
alert(item);//red
alert(colors.length);//2

  这个例子首先使用push()方法创建了一个包含3中颜色的数组。代码中使用shift()方法从数组中取得第一项,即"red“。在移除第一项之后”green“就变成了第一项,而”black“则变成了第二项,数组也只包含两项了。

  ECMAScript还为数组提供了一个unshift()方法。顾名思义,unshift()与shift()的用途相反;它能在数组的前端添加任意个项并返回新数组的长度。因此,同时使用unshift()和pop()方法,可以从相反方向模拟队列,即在数组的前端添加项,从数组末端移除项,如下面的例子所示:

var colors=new Array();//创建一个数组
var count=colors.unshift(”red","green");//推入两项
alert(count);//2

count=colors.unshift("black");//推入另一项
alert(count);//3

var item=colors.pop();//获得最后一项
alert(item);//green
alert(colors.length);//2

IE7及更早版本对JavaScript的实现存在一个偏差,其unshift()方法总是返回undefined而不是数组的新长度。IE8在非兼容模式下会返回正确的长度值。

转载于:https://www.cnblogs.com/onedaythreeeat/p/4554517.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值