Javascript数组中栈和队列方法
数组中栈方法 —— push()、pop()
栈是一种LIFO(Last-In-First-Out,后进先出)的数据结构,也就是最新添加的项最早被移除。而栈中项的插入(叫做推入,push)和移除(叫做弹出,pop),只发生在一个位置,即栈的顶部。ECMAScript为数组专门提供了push()和pop()的方法,以便实现类似栈的行为。
push()方法可以接收任意数量的参数,把他们逐个添加到数组的末尾,并返回修改后数组的长度。而pop()方法则从数组末尾移除最后一项,数组的lenrth值减1,然后返回移除的项.请看下面的例子:
push()的返回值
var colors = ["red","green","pink"]; //起初三项
var count = colors.push("orange","yellow"); //添加两项
console.log(count); //输出改变后数组的长度5
pop()的返回值
var colors = ["red","green","pink"]; //起初三项
var count = colors.push("orange","yellow"); //添加两项
var item = colors.pop();
console.log(colors.length); //数组长度为4
console.log(item); //“yellow"
数组中队列方法 —— shift()、unshift()
队列数据结构的访问规则是FIFO(First-In-First-Out,先进先出)。队列在列表的末端添加项,从列表的前端移除项。由于push()是向数组末端添加项的方法,因此模拟队列只需一个从数组前端取得项的方法。实现这一操作的方法就是shift(),它能够移除数组中的第一项并返回该项,同时将数组的长度减1。结合使用shift()和push()方法,可以像用队列一样使用数组。
var colors = ["red","green","pink"]; //起初三项
var item = colors.shift();
console.log(colors.length); //返回数组长度2
console.log(item); //“red"
ECMAScript还为数组提供了一个unshift()方法,顾名思义,unshift()和shift()的用途相反:它能在数组的前端添加任意个项并返回新数组的长度。
var colors = ["red","green","pink"]; //起初三项
var item = colors.unshift("orange");
console.log(colors.length); //返回数组长度4
console.log(item); //与上一行代码相同,返回数组长度4
引自:《Javascript 高级程序设计 第3版》