扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:builder.com.cn 2007年3月5日
关键字: Tony Patton 数据结构 JavaScript
在本页阅读全文(共19页)
JavaScript与一些更加稳定的语言相比,比如Java和C语言,有许多相似之处,但是它确实有很多鲜为人知的特性。JavaScript数组是这样一种设计元素,它提供了一些开发人员常常忽视的特性。本文就利用JavaScript数组创建一个堆栈和队列数组结构来解释其中的一些特性。
数组
你可以使用JavaScript的数组对象在一个变量下保存一组数值。列表A里的JavaScript创建了一个带有5个元素(每个都对应一个Web网站的地址)的数组,并在这个数组里循环,在一个提醒对话框里显示每个值。
JavaScript并不是一定要支持多维数组,但是你可以获得带有数组的数组。JavaScript的数组对象能够提供的功能不只对数组的基本支持;它还可以被用于提供队列和堆栈功能。
排入队列
队列是一种使用先进先出(FIFO)方式保存和处理数据的数据结构。它与人们在银行排队等候类似,按先来后的顺序等候服务。被新加到队列里的项目排在列表的结尾。
JavaScript的数组对象为你的代码使用队列提供了两个方法:
这两个方法都会影响数组的长度,push让数组的长度增加1,而shift让数组的长度减少1。列表B里的代码显示了这两个方法,它们被用来创建数字的对列并取回第一个对列元素。
下面就是生成的输出结果:
1这个简单的例子利用push方法向数组(1和2)加入了两个整数。然后,shift方法从数组(1)返回了第一个元素,而另外两个值被加到了数组(3和4)里;第一个元素被取回(2)并显示出来。
另外一个可用方法是unshift,它允许你在数组的开头插入一个或者多个元素,这与pop方法截然相反,后者用来在数组的结尾加入项目。Unshift方法会返回新的长度。在列表C里,我改变了先前的例子从而用到unshift方法。
你会注意到由于所有的东西现在都被加到了数组的开头,所以输出的结果发生了变化。按页面上的按钮所运行的脚本会显示下面的值:
2队列主要针对数据结构里的第一个元素,而堆栈更多的用于最后加入的项目。
堆栈
堆栈是一种利用后进先出(LIFO)方式处理数据的数据结构。或者,你可以把它想象为一个下推表,也就是新的项目被压到列表里已经存在的项目的上面,这样最后加入的项目被放在列表的首位。
Push方法和数组对象的pop方法合起来使用可以提供堆栈的功能。Pop方法被用来移除和返回数组的最后一个元素。一般来说,它会弹出加到数组里的最后一个元素。这个方法对数组的长度有影响(由于项目被移除,此长度要减掉1)。列表D里的示例同时使用了pop和push方法来实现一个堆栈的数据结构。
我们得到了下面的结果:
2这些方法的功能多少有一点重复,因为你也可以用shift/unshift实现一个堆栈数据结构。列表E里的代码使用shift和unshift方法重新编写了前面的堆栈示例。
你可以使用unshift和pop数组方法重新编写上面的队列示例,具体方法见列表F里的示例。
更多选择
就和其他所有的开发语言一样,JavaScript有自己的一套东西。其中的一个好例子是数组对象的多次使用,这让你能够轻易地使用堆栈和队列数据结构。当你构建Web应用程序的时候,这些数据结构是你手头的另一个开发选择。
Tony Patton的职业生涯开始于应用程序开发员,并已经获得了代表其专业水平的Java、VB、Lotus和XML认证。
责任编辑:德东
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者