5.2.4 队列方法

来源:互联网 发布:win7蓝屏修复软件 编辑:程序博客网 时间:2024/06/07 03:25

1:队列在列表的末端添加项,从列表的前端移除项。由于push()是向数组末端添加项的方法, 因此要模拟队列只需一个从数组前端取得项的方法。实现这一操作的数组方法就是shift(),它能够移 除数组中的第一个项并返回该项,同时将数组长度减1。结合使用shift()和push()方法,可以像使 用队列一样使用数组。

var colors = new Array(); //创建一个数组var count = colors.push("red", "green"); //推入两项alert(count); //2count = colors.push("black"); //推入另一项alert(count); //3var item = colors.shift(); //取得第一项alert(item); //"red"alert(colors.length); //2

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

2:unshift()与shift()的用途相反: 它能在数组前端添加任意个项并返回新数组的长度。因此,同时使用unshift()和pop()方法,可以从相反的方向来模拟队列,即在数组的前端添加项,从数组末端移除项,

var colors = new Array(); //创建一个数组var count = colors.unshift("red", "green"); //推入两项alert(count); //2count = colors.unshift("black"); //推入另一项alert(count); //3var item = colors.pop(); //取得最后一项alert(item); //"green"alert(colors.length); //2

这个例子创建了一个数组并使用unshift()方法先后推入了3 个值。首先是”red”和”green”,然后是”black”,数组中各项的顺为”black”、”red”、”green”。在调用pop()方法时,移除并返回 的是最后一项,即”green”。

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

原创粉丝点击