JavaScript栈和队列方法(Array类型)

Array 是 ECMAScript 中的数组类型,它提供了一种让数组的行为类似于其他数据结构的方法。

栈方法

栈是一种 LIFO(Last-In-First-Out,后进先出)的数据结构,也就是最后添加的项最先被移除。栈中项的插入(推入,push)和移除(弹出,pop)只发生在栈顶。
ECMAScript 为数组专门提供了 push( ) 和 pop( ) 方法,来实现类似栈的行为。

push( ) 方法可以接收任意个数的参数,将它们逐个添加到数组末尾,并返回修改后数组的长度。
pop( ) 方法则从数组末尾移除最后一项,减少数组的 length 值,然后返回移除的项。

var colors = new Array();
var count = colors.push("red", "blue", "green")
alert(colors)		// red,blue,green
alert(count)		// 3
alert(colors.pop())		// green
alert(colors.length)		// 2

队列方法

栈是一种 FIFO(First-In-First-Out,先进先出)的数据结构。队列在列表的末尾添加项,在前端移除项。
因为 push( ) 是向数组末端添加项的方法,因此只要再加一个从数组前端取得项的方法就可以模拟队列了。
实现这一操作的方法就是 shift( ) ,它能够移除数组中的第一项并返回该项,同时数组长度减 1。
结合 shift( ) 和 push( ) 就可以来模拟队列了。

var colors = new Array();
var count = colors.push("red", "blue", "green");
alert(colors)		// red,blue,green
alert(colors.shift())   // red

另外还提供了 unshift( ) 方法,他能在数组的前端添加任意个项并返回新数组的长度,与pop( ) 连用就可以模拟反向队列。

var colors = new Array("red", "blue", "green");
var count = colors.unshift("black", "pink");
alert(colors)		// black,pink,red,blue,green
alert(colors.shift())   // black

需要注意的是, 当使用 unshift( ) 方法添加多个项时,添加的顺序与参数顺序相同。

猜你喜欢

转载自blog.csdn.net/TalonZhang/article/details/84648758