这篇文章主要介绍了 JavaScript 数组的栈方法与队列方法, 非常不错,具有参考借鉴价值,需要的朋友可以参考下
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
数组(Array)和对象(Object)应该是 JavaScript 中使用最多也是最频繁的两种类型了,Array 提供了很多常用的方法:栈方法、队列方法、重排序方法、操作方法、位置方法、迭代方法等等。
1、Array 的栈方法
栈是一种 LIFO(Last-In-First-Out,后进先出)的数据结构,也就是最新添加的项最早被移除。栈中项的插入(push)和移除,只发生在一个位置——栈的顶部。ECMAScript 为数组提供了 push() 和 pop() 方法,可以实现类似栈的行为。下面两图分别演示了入栈与出栈操作。
push() 方法可以接收任意数据的参数,把它们逐个添加到数组末尾,并返回修改后的数组长度。pop() 方法从数组末尾移除最后一项,减少数组的 length 值
- var students = [];
- students.push("bluce", "jordan", "marlon", "kobe"); //入栈4项
- alert(students.length); //4
- alert(students[0]); //"bluce",第一项在栈的底部
- alert(students[1]); //"jordan"
- students.push("paul");
- alert(students.length); //5
- var item = students.pop(); //"paul"
- alert(students.length); //4
2、Array 的队列方法
栈数据结构的访问规则是 LIFO(后进先出),而队列数据结构的访问规则是 FIFO(First-In-First-Out,先进先出)。队列在列表的末端添加项,从列表的前端移除项。push() 方法是向数组末端添加项的方法,因此要模拟队列只需一个从数组前端取得项的方法——shift(),其能够移除数组中的第一个项并返回该项,同时数组的 length-1。结合使用 shift() 和 push() 方法,可以像使用队列一样使用数组。
- var students = [];
- students.push("bluce", "jordan", "marlon", "kobe"); //入队4项
- //students=["bluce","jordan","marlon","kobe"];
- alert(students.length); //4
- alert(students[0]); //"bluce",第一项在栈的底部
- alert(students[1]); //"jordan"
- students.push("paul");
- alert(students.length); //5
- //students=["bluce","jordan","marlon","kobe","paul"];
- var item = students.shift(); //"bluce"
- alert(students.length); //4
- //students=["jordan","marlon","kobe","paul"];
此外,ECMAScript 还提供了 unshift() 方法,它能在数组前端添加任意个项并返回新数组的长度。因此,结合使用 unshift() 和 pop() 方法,可以从相反的方向来模拟队列,即在数组的前端添加项,从数组末端移除项
来源: http://www.phperz.com/article/17/0401/265424.html